From dbc61419997a898dc1164e6307f10e5a3e5a041a Mon Sep 17 00:00:00 2001 From: Yehuda Sadeh Date: Tue, 20 Jan 2009 16:41:40 -0800 Subject: [PATCH] config: some more changes Signed-off-by: Yehuda Sadeh --- src/common/ConfUtils.cc | 27 ++------------------------- src/config.cc | 25 +++++++++++++++++++++++++ 2 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/common/ConfUtils.cc b/src/common/ConfUtils.cc index 44d4edfd1b036..16e9a83bf72c8 100644 --- a/src/common/ConfUtils.cc +++ b/src/common/ConfUtils.cc @@ -10,6 +10,8 @@ #include #include +#include "ConfUtils.h" + using namespace std; struct ltstr @@ -197,31 +199,6 @@ out: return ret; } -typedef map ConfMap; - -class ConfFile { - int fd; - char *filename; - map sections; - ConfMap map; - list 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; diff --git a/src/config.cc b/src/config.cc index 354873fcb1939..4f6212d1d60fa 100644 --- a/src/config.cc +++ b/src/config.cc @@ -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& args, bool open) { std::vector nargs; -- 2.39.5