- char **add_args, *args[10];
- char *info[MAX_ARGS_SIZE];
- int stat;
-
- args[0] = CanonicalizeHostname(argv[1]);
- if ( (args[1] = GetDirName()) == NULL)
- return(DM_NORMAL);
-
- if (!ValidName(args[0]) || !ValidName(args[1]))
- return(DM_NORMAL);
-
- if ( (stat = do_sms_query("get_nfsphys", 2, args,
- NullFunc, (char *) NULL)) == SMS_SUCCESS)
- Put_message("This service already exists.");
- if (stat != SMS_NO_MATCH)
- com_err(program_name, stat, " in get_nfsphys.");
-
- info[NFS_NAME] = Strsave(args[0]);
- info[NFS_DIR] = args[1]; /* already saved. */
- info[NFS_DEVICE] = Strsave(DEFAULT_DEVICE);
- info[NFS_STATUS] = Strsave(DEFAULT_STATUS);
- info[NFS_ALLOC] = Strsave(DEFAULT_ALLOC);
- info[NFS_SIZE] = Strsave(DEFAULT_SIZE);
- info[NFS_MODBY] = info[NFS_MODWITH] = info[NFS_MODTIME] = NULL;
- info[NFS_END] = NULL;
-
- add_args = AskNFSInfo(info);
-
- if ((stat = do_sms_query("add_nfsphys", CountArgs(add_args), add_args,
- Scream, (char *) NULL)) != 0)
- com_err(program_name, stat, " in AdsNFSService");
-
- FreeInfo(info);
- return (DM_NORMAL);
+ char **add_args, *args[10];
+ char *info[MAX_ARGS_SIZE];
+ int stat;
+
+ args[0] = canonicalize_hostname(strdup(argv[1]));
+ args[1] = strdup(DEFAULT_DIR);
+ if (GetValueFromUser("Directory:", &args[1]) == SUB_ERROR)
+ return DM_NORMAL;
+
+ if (!ValidName(args[0]) || !ValidName(args[1]))
+ return DM_NORMAL;
+
+ if (!(stat = do_mr_query("get_nfsphys", 2, args, NULL, NULL)))
+ stat = MR_EXISTS;
+ if (stat != MR_NO_MATCH)
+ {
+ com_err(program_name, stat, " in get_nfsphys.");
+ return DM_NORMAL;
+ }
+
+ info[NFS_NAME] = strdup(args[0]);
+ info[NFS_DIR] = args[1]; /* already saved. */
+ info[NFS_DEVICE] = strdup(DEFAULT_DEVICE);
+ info[NFS_STATUS] = strdup(DEFAULT_STATUS);
+ info[NFS_ALLOC] = strdup(DEFAULT_ALLOC);
+ info[NFS_SIZE] = strdup(DEFAULT_SIZE);
+ info[NFS_MODBY] = info[NFS_MODWITH] = info[NFS_MODTIME] = NULL;
+ info[NFS_END] = NULL;
+
+ if (!(add_args = AskNFSInfo(info)))
+ {
+ Put_message("Aborted.");
+ return DM_NORMAL;
+ }
+
+ if ((stat = do_mr_query("add_nfsphys", CountArgs(add_args), add_args,
+ NULL, NULL)))
+ com_err(program_name, stat, " in AdsNFSService");
+
+ FreeInfo(info);
+ free(args[0]);
+ return DM_NORMAL;