]> andersk Git - moira.git/commitdiff
if a locker of type HOMEDIR is added, prompt to add quota as well.
authormar <mar>
Thu, 31 Aug 1989 23:48:45 +0000 (23:48 +0000)
committermar <mar>
Thu, 31 Aug 1989 23:48:45 +0000 (23:48 +0000)
clients/moira/attach.c

index 99e33fb311efe26dee815620348794faa7333ab6..a345be302685b2aace400bee2bc564c8477156c0 100644 (file)
@@ -47,7 +47,6 @@
 #define DEFAULT_TYPE     ("NFS")
 #define DEFAULT_MACHINE  DEFAULT_NONE
 #define DEFAULT_PACK     DEFAULT_NONE
-#define DEFAULT_M_POINT  DEFAULT_NONE
 #define DEFAULT_ACCESS   ("w")
 #define DEFAULT_COMMENTS DEFAULT_COMMENT
 #define DEFAULT_OWNER    (user)
@@ -66,11 +65,14 @@ SetDefaults(info, name)
 char ** info;
 char * name;
 {
+    char buf[BUFSIZ];
+
     info[FS_NAME] =     Strsave(name);
     info[FS_TYPE] =     Strsave(DEFAULT_TYPE);
     info[FS_MACHINE] =  Strsave(DEFAULT_MACHINE);
     info[FS_PACK] =     Strsave(DEFAULT_PACK);
-    info[FS_M_POINT] =  Strsave(DEFAULT_M_POINT);
+    sprintf(buf, "/mit/%s", name);
+    info[FS_M_POINT] =  Strsave(buf);
     info[FS_ACCESS] =   Strsave(DEFAULT_ACCESS);
     info[FS_COMMENTS] = Strsave(DEFAULT_COMMENTS);
     info[FS_OWNER] =    Strsave(DEFAULT_OWNER);
@@ -440,7 +442,7 @@ AddFS(argc, argv)
 char **argv;
 int argc;
 {
-    char *info[MAX_ARGS_SIZE], **args;
+    char *info[MAX_ARGS_SIZE], **args, buf[BUFSIZ];
     int stat;
     extern Menu nfsphys_menu;
 
@@ -479,6 +481,37 @@ int argc;
        com_err(program_name, stat, " in AddFS");
     }
 
+    if (stat == SMS_SUCCESS && !strcasecmp(info[FS_L_TYPE], "HOMEDIR")) {
+       static char *val[] = {"def_quota", NULL};
+       static char *def_quota = NULL;
+       char *argv[3];
+       struct qelem *top = NULL;
+
+       if (def_quota == NULL) {
+           stat = do_sms_query("get_value", CountArgs(val), val,
+                               StoreInfo, (char *) &top);
+           if (stat != SMS_SUCCESS) {
+               com_err(program_name, stat, " getting default quota");
+           } else {
+               top = QueueTop(top);
+               def_quota = Strsave(((char **)top->q_data)[0]);
+               FreeQueue(top);
+           }
+       }
+       if (def_quota != NULL) {
+           sprintf(buf, "Give user %s a quota of %s on filesys %s (Y/N)",
+                   info[FS_NAME], def_quota, info[FS_NAME]);
+           if (YesNoQuestion(buf, 1)) {
+               argv[Q_LOGIN] = argv[Q_FILESYS] = info[FS_NAME];
+               argv[Q_QUOTA] = def_quota;
+               if ((stat = do_sms_query("add_nfs_quota", 3, argv, Scream,
+                                        (char *) NULL)) != SMS_SUCCESS) {
+                   com_err(program_name, stat, " while adding quota");
+               }
+           }
+       }
+    }
+
     FreeInfo(info);
     return (DM_NORMAL);
 }
This page took 0.042012 seconds and 5 git commands to generate.