]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
conf: avoid parsing daemon related config options when not needed
authorYehuda Sadeh <yehuda@hq.newdream.net>
Mon, 8 Jun 2009 20:22:03 +0000 (13:22 -0700)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Mon, 8 Jun 2009 20:22:03 +0000 (13:22 -0700)
src/cconf.cc
src/common/common_init.cc
src/config.cc
src/config.h

index c7ed7a9a33dc4a414bc0a00763bc9230ca4fd9e2..398c53c12ca4d3fa037ff6260d2c21a6ef94cf8b 100644 (file)
@@ -43,6 +43,8 @@ int main(int argc, const char **argv)
   FOR_EACH_ARG(args) {
     if (CONF_ARG_EQ("type", 't')) {
       CONF_SAFE_SET_ARG_VAL(&type, OPT_STR);
+    } else if (CONF_ARG_EQ("id", 'i')) {
+      CONF_SAFE_SET_ARG_VAL(&g_conf.id, OPT_STR);
     } else {
       nargs.push_back(args[i]);
     }
index 1edaad65a5abc1124395d55e25de21ce0d915f59..8dbed90f8c5239e73349281730cb965e7474c931 100644 (file)
@@ -22,7 +22,7 @@ void common_init(std::vector<const char*>& args, const char *module_type, bool d
     g_conf.logger = false;
   }
 
-  parse_startup_config_options(args, module_type);
+  parse_startup_config_options(args, daemon, module_type);
   parse_config_options(args);
 
   // open log file?
index 9a51cbd000cb889c21dc081acbfda33c86f06860..40dcd595517e010de4772d21e118de2c6a34f768 100644 (file)
@@ -877,7 +877,7 @@ bool is_bool_param(const char *param)
        return ((strcasecmp(param, "true")==0) || (strcasecmp(param, "false")==0));
 }
 
-void parse_startup_config_options(std::vector<const char*>& args, const char *module_type)
+void parse_startup_config_options(std::vector<const char*>& args, bool isdaemon, const char *module_type)
 {
   DEFINE_CONF_VARS(NULL);
   std::vector<const char *> nargs;
@@ -897,20 +897,20 @@ void parse_startup_config_options(std::vector<const char*>& args, const char *mo
        conf_specified = true;
     } else if (CONF_ARG_EQ("monmap", 'M')) {
        CONF_SAFE_SET_ARG_VAL(&g_conf.monmap, OPT_STR);
-    } else if (CONF_ARG_EQ("bind", 0)) {
+    } else if (CONF_ARG_EQ("show_conf", 'S')) {
+      show_config = true;
+    } else if (isdaemon && CONF_ARG_EQ("bind", 0)) {
       assert_warn(parse_ip_port(args[++i], g_my_addr));
-    } else if (CONF_ARG_EQ("nodaemon", 'D')) {
+    } else if (isdaemon && CONF_ARG_EQ("nodaemon", 'D')) {
       g_conf.daemonize = false;
       g_conf.log_to_stdout = true;
-    } else if (CONF_ARG_EQ("daemonize", 'd')) {
+    } else if (isdaemon && CONF_ARG_EQ("daemonize", 'd')) {
       g_conf.daemonize = true;
       g_conf.log_to_stdout = false;
-    } else if (CONF_ARG_EQ("foreground", 'f')) {
+    } else if (isdaemon && CONF_ARG_EQ("foreground", 'f')) {
       g_conf.daemonize = false;
       g_conf.log_to_stdout = false;
-    } else if (CONF_ARG_EQ("show_conf", 'S')) {
-      show_config = true;
-    } else if (CONF_ARG_EQ("id", 'i')) {
+    } else if (isdaemon && CONF_ARG_EQ("id", 'i')) {
       CONF_SAFE_SET_ARG_VAL(&g_conf.id, OPT_STR);
     } else {
       nargs.push_back(args[i]);
index b6dfb5398f0e1a62b72282b6e80fda5fef101a8b..884349a3d82e1b2c62ea1cdc4f764031bbb293d3 100644 (file)
@@ -363,7 +363,7 @@ void env_to_deq(std::deque<const char*>& args);
 void argv_to_deq(int argc, const char **argv,
                  std::deque<const char*>& args);
 
-void parse_startup_config_options(std::vector<const char*>& args, const char *module_type);
+void parse_startup_config_options(std::vector<const char*>& args, bool isdaemon, const char *module_type);
 void parse_config_options(std::vector<const char*>& args);
 void parse_config_option_string(string& s);