Fix ptserver -default_access parsing
[openafs.git] / src / ptserver / ptserver.c
index 3459dfb..14bb962 100644 (file)
@@ -147,6 +147,7 @@ extern afs_int32 depthsg;
 #endif
 
 int restricted = 0;
+int restrict_anonymous = 0;
 int rxMaxMTU = -1;
 int rxBind = 0;
 int rxkadDisableDotCheck = 0;
@@ -214,6 +215,7 @@ enum optionsList {
     OPT_access,
     OPT_groupdepth,
     OPT_restricted,
+    OPT_restrict_anonymous,
     OPT_auditlog,
     OPT_auditiface,
     OPT_config,
@@ -300,22 +302,24 @@ main(int argc, char **argv)
 
     cmd_DisableAbbreviations();
     cmd_DisablePositionalCommands();
-    opts = cmd_CreateSyntax(NULL, NULL, NULL, NULL);
+    opts = cmd_CreateSyntax(NULL, NULL, NULL, 0, NULL);
 
 /* ptserver specific options */
     cmd_AddParmAtOffset(opts, OPT_database, "-database", CMD_SINGLE,
                        CMD_OPTIONAL, "database file");
-    cmd_AddParmAlias(opts, OPT_database, "db");
+    cmd_AddParmAlias(opts, OPT_database, "-db");
 
-    cmd_AddParmAtOffset(opts, OPT_access, "-default_access", CMD_SINGLE,
+    cmd_AddParmAtOffset(opts, OPT_access, "-default_access", CMD_LIST,
                        CMD_OPTIONAL, "default access flags for new entries");
 #if defined(SUPERGROUPS)
     cmd_AddParmAtOffset(opts, OPT_groupdepth, "-groupdepth", CMD_SINGLE,
                        CMD_OPTIONAL, "max search depth for supergroups");
-    cmd_AddParmAlias(opts, OPT_groupdepth, "depth");
+    cmd_AddParmAlias(opts, OPT_groupdepth, "-depth");
 #endif
     cmd_AddParmAtOffset(opts, OPT_restricted, "-restricted", CMD_FLAG,
                        CMD_OPTIONAL, "enable restricted mode");
+    cmd_AddParmAtOffset(opts, OPT_restrict_anonymous, "-restrict_anonymous",
+                       CMD_FLAG, CMD_OPTIONAL, "enable restricted anonymous mode");
 
     /* general server options */
     cmd_AddParmAtOffset(opts, OPT_auditlog, "-auditlog", CMD_SINGLE,
@@ -351,6 +355,9 @@ main(int argc, char **argv)
                        "permit Kerberos 5 principals with dots");
 
     code = cmd_Parse(argc, argv, &opts);
+    if (code == CMD_HELP) {
+       PT_EXIT(0);
+    }
     if (code)
        PT_EXIT(1);
 
@@ -373,6 +380,7 @@ main(int argc, char **argv)
 #endif
 
     cmd_OptionAsFlag(opts, OPT_restricted, &restricted);
+    cmd_OptionAsFlag(opts, OPT_restrict_anonymous, &restrict_anonymous);
 
     /* general server options */
     cmd_OptionAsString(opts, OPT_auditlog, &auditFileName);
@@ -568,6 +576,9 @@ main(int argc, char **argv)
                   "1.0",
 #endif
                   "Starting AFS", FSLog);
+    if (afsconf_GetLatestKey(prdir, NULL, NULL) == 0) {
+       LogDesWarning();
+    }
 
     rx_StartServer(1);
     osi_audit(PTS_FinishEvent, -1, AUD_END);