]> andersk Git - moira.git/blobdiff - gen/hesiod.qc
Used /bin/sh format instead of /bin/csh format, by accident.
[moira.git] / gen / hesiod.qc
index 7b5826908f07bfdd2439d5e8b2eb89ad47168b5d..c56630aede5da6cf725b4b3384a6fbfa006a7747 100644 (file)
@@ -11,8 +11,8 @@
 
 #include <mit-copyright.h>
 #include <stdio.h>
-#include <sms.h>
-#include <sms_app.h>
+#include <moira.h>
+#include <moira_site.h>
 #include <sys/types.h>
 #include <sys/stat.h>
 #include <sys/time.h>
@@ -34,7 +34,7 @@ char *whoami = "hesiod.gen";
 
 struct grp {
     struct grp *next;
-    int id;
+    char *lid;
 };
 struct user {
     char name[9];
@@ -55,7 +55,7 @@ char **argv;
 
     if (argc > 2) {
        fprintf(stderr, "usage: %s [outfile]\n", argv[0]);
-       exit(SMS_ARGS);
+       exit(MR_ARGS);
     }
 
     IIseterr(ingerr);
@@ -79,17 +79,17 @@ char **argv;
     if (!changed) {
        fprintf(stderr, "No files updated.\n");
        if (argc == 2 && stat(argv[1], &sb) == 0)
-         exit(SMS_NO_CHANGE);
+         exit(MR_NO_CHANGE);
     }
 
     if (argc == 2) {
        fprintf(stderr, "Building tar file.\n");
        sprintf(cmd, "cd %s; tar cf %s .", hesiod_dir, argv[1]);
        if (system(cmd))
-         exit(SMS_TAR_FAIL);
+         exit(MR_TAR_FAIL);
     }
 
-    exit(SMS_SUCCESS);
+    exit(MR_SUCCESS);
 }
 
 
@@ -107,12 +107,12 @@ static int ingerr(num)
 
     switch (*num) {
     case INGRES_DEADLOCK:
-       ingres_errno = SMS_DEADLOCK;
+       ingres_errno = MR_DEADLOCK;
        break;
     default:
-       ingres_errno = SMS_INGRES_ERR;
+       ingres_errno = MR_INGRES_ERR;
     }
-    com_err(whoami, SMS_INGRES_ERR, " code %d\n", *num);
+    com_err(whoami, MR_INGRES_ERR, " code %d\n", *num);
     critical_alert("DCM", "Hesiod build encountered INGRES ERROR %d", *num);
     exit(ingres_errno);
 }
@@ -167,19 +167,19 @@ do_passwd()
     pout = fopen(poutft, "w");
     if (!pout) {
        perror("cannot open passwd.db~ for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
     sprintf(uoutft, "%s~", uoutf);
     uout = fopen(uoutft, "w");
     if (!uout) {
        perror("cannot open uid.db~ for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
     sprintf(boutft, "%s~", boutf);
     bout = fopen(boutft, "w");
     if (!bout) {
        perror("cannot open pobox.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
 
     fprintf(stderr, "Building passwd.db, uid.db, and pobox.db\n");
@@ -214,7 +214,7 @@ do_passwd()
 
     if (fclose(pout) || fclose(uout) || fclose(bout)) {
        fprintf(stderr, "Unsuccessful file close of passwd.db, uid.db, or pobox.db\n");
-       exit(SMS_CCONFIG);
+       exit(MR_CCONFIG);
     }
     fix_file(poutf);
     fix_file(uoutf);
@@ -260,19 +260,19 @@ do_groups()
     iout = fopen(buf, "w");
     if (!iout) {
        perror("cannot open gid.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
     sprintf(buf, "%s~", goutf);
     gout = fopen(buf, "w");
     if (!gout) {
        perror("cannot open group.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
     sprintf(buf, "%s~", loutf);
     lout = fopen(buf, "w");
     if (!lout) {
        perror("cannot open grplist.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
 
     fprintf(stderr, "Building gid.db, group.db, and grplist.db\n");
@@ -315,12 +315,12 @@ do_groups()
 
 ##  repeat retrieve (lid = m.list_id, id = m.member_id)
 ##     where m.member_type = "USER" {
-      if ((hash_lookup(groups, lid) != NULL) &&
+      if (((l = hash_lookup(groups, lid)) != NULL) &&
          (u = (struct user *) hash_lookup(users, id))) {
          g = (struct grp *) malloc(sizeof(struct grp));
          g->next = u->lists;
          u->lists = g;
-         g->id = lid;
+         g->lid = l;
       }
 ##  }
 ##  end transaction
@@ -331,19 +331,18 @@ do_groups()
              continue;
            fprintf(lout, "%s.grplist\tHS %s \"",
                    ((struct user *)b->data)->name, HTYPE);
-           for (; g; g = g->next)
-             if (l = hash_lookup(groups, g->id)) {
-                 fputs(l, lout);
-                 if (g->next)
-                   putc(':', lout);
-             }
+           for (; g; g = g->next) {
+               fputs(g->lid, lout);
+               if (g->next)
+                 putc(':', lout);
+           }
            fputs("\"\n", lout);
        }
     }
 
     if (fclose(iout) || fclose(gout) || fclose(lout)) {
        fprintf(stderr, "Unsuccessful close of gid.db, group.db, or grplist.db\n");
-       exit(SMS_CCONFIG);
+       exit(MR_CCONFIG);
     }
     fix_file(ioutf);
     fix_file(goutf);
@@ -388,7 +387,7 @@ do_filsys()
     out = fopen(outft, "w");
     if (!out) {
        perror("cannot open filsys.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
 
     fprintf(stderr, "Building filsys.db\n");
@@ -470,7 +469,7 @@ do_filsys()
 
     if (fclose(out)) {
        fprintf(stderr, "Unsuccessful close of filsys.db\n");
-       exit(SMS_CCONFIG);
+       exit(MR_CCONFIG);
     }
     fix_file(outf);
     return(1);
@@ -542,7 +541,7 @@ do_cluster()
     out = fopen(outft, "w");
     if (!out) {
        perror("cannot open cluster.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
 
     fprintf(stderr, "Building cluster.db\n");
@@ -582,7 +581,7 @@ do_cluster()
                      strtrim(label);
                      strtrim(data);
                      fprintf(out,
-                             "smsinternal-%d.cluster\tHS %s \"%s %s\"\n",
+                             "mrinternal-%d.cluster\tHS %s \"%s %s\"\n",
                              mid, HTYPE, label, data);
 ##               }
                }
@@ -603,7 +602,7 @@ do_cluster()
              fprintf(out, "%s.cluster\tHS CNAME %s.cluster\n",
                      machbuf, name);
            else
-             fprintf(out, "%s.cluster\tHS CNAME smsinternal-%d.cluster\n",
+             fprintf(out, "%s.cluster\tHS CNAME mrinternal-%d.cluster\n",
                      machbuf, mid);
        }
        for (id = mid + 1; id < maxmach; id++) {
@@ -619,7 +618,7 @@ do_cluster()
                              machbuf, name);
                    else
                      fprintf(out,
-                             "%s.cluster\tHS CNAME smsinternal-%d.cluster\n",
+                             "%s.cluster\tHS CNAME mrinternal-%d.cluster\n",
                              machbuf, mid);
                }
            }
@@ -641,7 +640,7 @@ do_cluster()
 
     if (fclose(out)) {
        fprintf(stderr, "Unsuccessful close of cluster.db\n");
-       exit(SMS_CCONFIG);
+       exit(MR_CCONFIG);
     }
     fix_file(outf);
     return(1);
@@ -654,8 +653,8 @@ do_printcap()
     char outf[64], outft[64];
     struct stat sb;
     time_t ftime;
-##  char name[17], rp[17], sd[33], rm[33], *filetime;
-##  int flag;
+##  char name[17], rp[17], sd[33], rm[33], rq[33], *filetime;
+##  int flag, ka, pc;
 
     sprintf(outf, "%s/printcap.db", hesiod_dir);
 
@@ -674,25 +673,32 @@ do_printcap()
     out = fopen(outft, "w");
     if (!out) {
        perror("cannot open printcap.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
 
     fprintf(stderr, "Building printcap.db\n");
 
 ##  range of p is printcap
-##  retrieve (name = p.#name, rp = p.#rp, sd = p.dir, rm = machine.#name)
-##    where machine.mach_id = p.mach_id {
+##  range of m is machine
+##  retrieve (name = p.#name, rp = p.#rp, sd = p.dir, rm = machine.#name,
+##           ka = p.auth, pc = p.price, rq = m.#name)
+##    where machine.mach_id = p.mach_id and m.mach_id = p.quotaserver {
        strtrim(name);
        strtrim(rp);
        strtrim(sd);
        strtrim(rm);
-       fprintf(out, "%s.pcap\tHS %s \"%s:rp=%s:rm=%s:sd=%s\"\n",
-               name, HTYPE, name, rp, rm, sd);
+       strtrim(rq);
+       fprintf(out, "%s.pcap\tHS %s \"%s:rp=%s:rm=%s:sd=%s:ka#%d:pc#%d",
+               name, HTYPE, name, rp, rm, sd, ka, pc);
+       if (strcmp(rq, "[NONE]"))
+         fprintf(out, ":rq=%s\"\n", rq);
+       else
+         fputs("\"\n", out);
 ##  }
 
     if (fclose(out)) {
        fprintf(stderr, "Unsuccessful close of pcap.db\n");
-       exit(SMS_CCONFIG);
+       exit(MR_CCONFIG);
     }
     fix_file(outf);
     return(1);
@@ -727,7 +733,7 @@ do_palladium()
     out = fopen(outft, "w");
     if (!out) {
        perror("cannot open palladium.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
 
     fprintf(stderr, "Building palladium.db\n");
@@ -750,7 +756,7 @@ do_palladium()
 
     if (fclose(out)) {
        fprintf(stderr, "Unsuccessful close of palladium.db\n");
-       exit(SMS_CCONFIG);
+       exit(MR_CCONFIG);
     }
     fix_file(outf);
     return(1);
@@ -785,7 +791,7 @@ do_sloc()
     out = fopen(outft, "w");
     if (!out) {
        perror("cannot open sloc.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
 
     fprintf(stderr, "Building sloc.db\n");
@@ -801,7 +807,7 @@ do_sloc()
 
     if (fclose(out)) {
        fprintf(stderr, "Unsuccessful close of sloc.db\n");
-       exit(SMS_CCONFIG);
+       exit(MR_CCONFIG);
     }
 
     fix_file(outf);
@@ -834,7 +840,7 @@ do_service()
     out = fopen(outft, "w");
     if (!out) {
        perror("cannot open service.db for write");
-       exit(SMS_OCONFIG);
+       exit(MR_OCONFIG);
     }
 
     fprintf(stderr, "Building service.db\n");
@@ -857,7 +863,7 @@ do_service()
 
     if (fclose(out)) {
        fprintf(stderr, "Unsuccessful close of service.db\n");
-       exit(SMS_CCONFIG);
+       exit(MR_CCONFIG);
     }
     fix_file(outf);
     return(1);
This page took 0.047134 seconds and 4 git commands to generate.