]> andersk Git - moira.git/commitdiff
Add support for winhomedir and winprofiledir.
authorzacheiss <zacheiss>
Thu, 14 Aug 2003 02:43:09 +0000 (02:43 +0000)
committerzacheiss <zacheiss>
Thu, 14 Aug 2003 02:43:09 +0000 (02:43 +0000)
gen/winad.pc

index 0db5020b643d84e36303b7aa3145d955f7e2f35e..0a78a4b80ba6397390de7d07e982d3904fdfbf34 100644 (file)
@@ -86,6 +86,8 @@ int do_user(void)
   int users_id, unix_uid, status;
   char type[FILESYS_TYPE_SIZE];
   char name[FILESYS_NAME_SIZE];
+  char homedir[USERS_WINHOMEDIR_SIZE];
+  char profiledir[USERS_WINPROFILEDIR_SIZE];
   int fid;
   EXEC SQL END DECLARE SECTION;
 
@@ -100,75 +102,97 @@ int do_user(void)
   }
 
   EXEC SQL DECLARE u_cursor CURSOR FOR
-    SELECT users_id, login, unix_uid, status, clearid
+    SELECT users_id, login, unix_uid, status, clearid, winhomedir,
+    winprofiledir
     FROM users
     ORDER BY users_id;
   EXEC SQL OPEN u_cursor;
   while (1)
     {
       EXEC SQL FETCH u_cursor INTO :users_id, :login, :unix_uid, :status,
-:mit_id;
+:mit_id, :homedir, :profiledir;
       if (sqlca.sqlcode)
              break;
       strtrim(login);
       strtrim(mit_id);
-      
-      EXEC SQL SELECT filsys_id into :fid
-        FROM filesys
-        WHERE lockertype = 'HOMEDIR' 
-        AND label = :login
-        AND type = 'FSGROUP';
+      strtrim(homedir);
+      strtrim(profiledir);
+
+      if (strcmp(mit_id, "") == 0)
+       strcpy(mit_id, "0");
+
+      if (strcasecmp(homedir, "[AFS]") == 0 || strcasecmp(profiledir,
+                                                         "[AFS]") == 0)
+       {
+         EXEC SQL SELECT filsys_id into :fid
+           FROM filesys
+           WHERE lockertype = 'HOMEDIR' 
+           AND label = :login
+           AND type = 'FSGROUP';
+         
+         if (sqlca.sqlcode == 0)
+           {
+             EXEC SQL DECLARE f_cursor CURSOR FOR
+               SELECT type, name 
+               FROM filesys a, fsgroup b
+               WHERE a.filsys_id=b.filsys_id 
+               AND b.group_id=:fid
+               ORDER by key;
+             
+             EXEC SQL OPEN f_cursor;
+             
+             EXEC SQL FETCH f_cursor INTO :type, :name;
+             
+             if (sqlca.sqlcode == 0)
+               {
+                 strtrim(type);
+                 strtrim(name);
+               }
+             else
+               {
+                 strcpy(type, "NONE");
+                 strcpy(name, "NONE");
+               }
+             
+             EXEC SQL CLOSE f_cursor;
+           }
+
+         else
+           {
+             EXEC SQL SELECT type, name into :type, :name
+               FROM filesys
+               WHERE lockertype = 'HOMEDIR' 
+               AND label=:login;
+             
+             if (sqlca.sqlcode == 0)
+               {
+                 strtrim(type);
+                 strtrim(name);
+               }
+             else
+               {
+                 strcpy(type, "NONE");
+                 strcpy(name, "NONE");
+               }
+           }
+         if (strcasecmp(type, "AFS") != 0)
+           strcpy(name, "[LOCAL]");
 
-      if (sqlca.sqlcode == 0)
-      {
-        EXEC SQL DECLARE f_cursor CURSOR FOR
-          SELECT type, name 
-          FROM filesys a, fsgroup b
-          WHERE a.filsys_id=b.filsys_id 
-          AND b.group_id=:fid
-          ORDER by key;
-      
-        EXEC SQL OPEN f_cursor;
-      
-        EXEC SQL FETCH f_cursor INTO :type, :name;
-
-        if (sqlca.sqlcode == 0)
-        {
-          strtrim(type);
-          strtrim(name);
-        }
-        else
-        {
-          strcpy(type, "NONE");
-          strcpy(name, "NONE");
-        }
-
-        EXEC SQL CLOSE f_cursor;
-      }
-       
+       }
 
-      else
-      {
-        EXEC SQL SELECT type, name into :type, :name
-          FROM filesys
-          WHERE lockertype = 'HOMEDIR' 
-          AND label=:login;
-
-        if (sqlca.sqlcode == 0)
-        {
-          strtrim(type);
-          strtrim(name);
-        }
-        else
-        {
-          strcpy(type, "NONE");
-          strcpy(name, "NONE");
-        }
-      }
+      if (strcasecmp(homedir, "[AFS]") == 0)
+       strcpy(homedir, name);
+
+      if (strcasecmp(profiledir, "[AFS]") == 0)
+       {
+         strcpy(profiledir, name);
+         if (strcasecmp(name, "[LOCAL]"))
+           strcat(profiledir, "/.winprofile");
+       }
   
       fprintf(fout, "%d %s %d %d %s %s %s\n",
                      users_id, login, unix_uid, status, mit_id, 
-          type, name);
+             homedir, profiledir);
     }
   
   if (sqlca.sqlcode < 0)
This page took 0.062282 seconds and 5 git commands to generate.