]> git.apps.os.sepia.ceph.com Git - ceph.git/commitdiff
config: some more changes
authorYehuda Sadeh <yehuda@hq.newdream.net>
Wed, 21 Jan 2009 00:41:40 +0000 (16:41 -0800)
committerYehuda Sadeh <yehuda@hq.newdream.net>
Fri, 23 Jan 2009 17:31:42 +0000 (09:31 -0800)
Signed-off-by: Yehuda Sadeh <yehuda@hq.newdream.net>
src/common/ConfUtils.cc
src/config.cc

index 44d4edfd1b036f8f715e609cfe95d3fcbce1bcd6..16e9a83bf72c8a43c0d75ac16bed4ebd22c03467 100644 (file)
@@ -10,6 +10,8 @@
 #include <list>
 #include <string>
 
+#include "ConfUtils.h"
+
 using namespace std;
 
 struct ltstr
@@ -197,31 +199,6 @@ out:
        return ret;
 }
 
-typedef map<string, struct conf_line *> ConfMap;
-
-class ConfFile {
-       int fd;
-       char *filename;
-       map<string, ConfMap *> sections;
-       ConfMap map;
-       list<struct conf_line *> list;
-
-       struct conf_line *_find_var(char *section, char* var);
-public:
-       ConfFile(char *fname) : filename(strdup(fname)) {}
-       ~ConfFile() { free(filename); }
-
-       int parse();
-       int read_int(char *section, char *var, int *val, int def_val);
-       int read_bool(char *section, char *var, bool *val, bool def_val);
-       int read_str(char *section, char *var, char *val, int size, char *def_val);
-       int read_float(char *section, char *var, float *val, float def_val);
-
-       int write_int(char *section, char *var, int val);
-
-       void dump();
-};
-
 static int _str_cat(char *str1, int max, char *str2)
 {
        int len;
index 354873fcb193983ae1519dc2a6f410656cfe71f2..4f6212d1d60faa628059e5b4a5c66d8553a2bb65 100644 (file)
@@ -596,6 +596,31 @@ void sighup_handler(int signum)
   _dout_need_open = true;
 }
 
+
+void parse_config_file(char *fname)
+{
+  ConfFile cf(fname);
+
+  cf.parse();
+
+#define CF_READ(section, type, field, inout) \
+  cf.read_#type(section, ##field, &inout, inout)
+
+  CF_READ("global", int, num_mon, g_conf.num_mon);
+  CF_READ("global", int, num_mon, g_conf.num_mds);
+  CF_READ("global", int, num_mon, g_conf.num_osd);
+  CF_READ("global", bool, mkfs, g_conf.mkfs);
+  CF_READ("global", bool, daemonize, g_conf.daemonize);
+  CF_READ("global", bool, file_logs, g_conf.file_logs);
+  CF_READ("global", bool, log, g_conf.log);
+  CF_READ("global", int, log_interval, g_conf.log_interval);
+  CF_READ("global", str, log_name, g_conf.log_name);
+  CF_READ("global", bool, log_messages, g_conf.log_messages);
+  CF_READ("global", bool, log_pins, g_conf.log_pins);
+  CF_READ("global", bool, dout_dir, g_conf.dout_dir);
+  CF_READ("global", bool, dout_sym_dir, g_conf.dout_sym_dir);
+}
+
 void parse_config_options(std::vector<const char*>& args, bool open)
 {
   std::vector<const char*> nargs;