]> andersk Git - moira.git/blobdiff - gen/hesiod.dc
Diane Delgado's changes for a fixed table-locking order
[moira.git] / gen / hesiod.dc
index 0e8b2504b9f750d4289f456952785639b717ddba..f83218b1b8cdcdcdf878e90cab527a526ce824ca 100644 (file)
@@ -112,7 +112,7 @@ get_mach()
 {
     EXEC SQL BEGIN DECLARE SECTION;
     int id;
-    char name[33];
+    char name[41];
     EXEC SQL END DECLARE SECTION;
 
     if (machines)
@@ -122,6 +122,7 @@ get_mach()
     EXEC SQL DECLARE m_cursor CURSOR FOR
       SELECT name, mach_id
       FROM machine
+      WHERE status = 1 and mach_id != 0
       ORDER BY mach_id;
     EXEC SQL OPEN m_cursor;
     while (1) {
@@ -221,7 +222,7 @@ do_passwd()
                        login, shell);
                fprintf(uout, "%d.uid\tHS CNAME %s.passwd\n", uid, login);
            }
-           if (ptype[0] == 'P' && (mach = hash_lookup(machines, pid))) {
+           if (pid != 0 && (mach = hash_lookup(machines, pid))) {
                fprintf(bout, "%s.pobox\tHS %s \"POP %s %s\"\n",
                        login, HTYPE, mach, login);
            }
@@ -308,8 +309,10 @@ do_groups()
     EXEC SQL WHENEVER SQLERROR GOTO sqlerr;
 
     /* get lock records */
-    EXEC SQL SELECT modtime INTO :name FROM list WHERE list_id = 0;
+    EXEC SQL SELECT modtime INTO :name FROM imembers WHERE list_id = 0;
     EXEC SQL SELECT modtime INTO :name FROM users WHERE users_id = 0;
+    EXEC SQL SELECT modtime INTO :name FROM list WHERE list_id = 0;
+
 
     EXEC SQL DECLARE l_cursor CURSOR FOR
       SELECT name, gid, list_id
@@ -457,6 +460,11 @@ do_filsys()
     sq = sq_create();
     sq2 = sq_create();
 
+    /* get lock records */
+
+    EXEC SQL SELECT modtime INTO :name from filesys where filsys_id = 0;
+    EXEC SQL SELECT modtime INTO :name from fsgroup where filsys_id = 0;
+
     EXEC SQL DECLARE f_cursor CURSOR FOR
       SELECT label, type, name, mach_id, access, mount, comments, filsys_id
       FROM filesys
@@ -611,12 +619,12 @@ set_mask *set;
 do_cluster()
 {
     FILE *out;
-    char outf[64], outft[64], *mach, machbuf[33], *p;
+    char outf[64], outft[64], *mach, machbuf[41], *p;
     struct stat sb;
     time_t ftime;
     EXEC SQL BEGIN DECLARE SECTION;
     int flag1, flag2, flag3, flag4, maxmach, maxclu, mid, cid, id;
-    char name[33], label2[17], data[33];
+    char name[41], label2[17], data[33];
     EXEC SQL END DECLARE SECTION;
     set_mask **machs, *ms, *ps;
     int oneclu;
@@ -645,6 +653,12 @@ do_cluster()
     fprintf(stderr, "Building cluster.db\n");
     get_mach();
 
+    /* get lock records */
+    EXEC SQL SELECT modtime INTO :name  FROM machine where mach_id = 0;
+    EXEC SQL SELECT modtime INTO :name  FROM cluster where clu_id = 0;
+    EXEC SQL SELECT modtime INTO :name  FROM mcmap where mach_id = 0;
+    EXEC SQL SELECT modtime INTO :name  FROM svc where clu_id = 0;
+
     EXEC SQL SELECT MAX(clu_id) INTO :maxclu FROM cluster;
     maxclu++;
     setsize = howmany(maxclu, NSETBITS);
@@ -1062,3 +1076,10 @@ do_service()
     db_error(sqlca.sqlcode);
     return(0);
 }
+
+
+
+
+
+
+
This page took 0.0749840000000001 seconds and 4 git commands to generate.