diff --git a/core/AmConfigReader.cpp b/core/AmConfigReader.cpp index 407af17c..25f99416 100644 --- a/core/AmConfigReader.cpp +++ b/core/AmConfigReader.cpp @@ -72,8 +72,10 @@ int AmConfigReader::loadFile(const string& path) inc_beg = c++; while( !IS_EOL(*c) && !IS_SPACE(*c) ) c++; inc_end = c; - if(loadFile(AmConfig::ModConfigPath + - string(inc_beg,inc_end-inc_beg) )) + string fname = string(inc_beg,inc_end-inc_beg); + if (fname.length() && fname[0] != '/') + fname = AmConfig::ModConfigPath + fname; + if(loadFile(fname)) return -1; continue; } @@ -114,15 +116,20 @@ int AmConfigReader::loadFile(const string& path) if((key_beg < key_end) && (val_beg <= val_end)) { string keyname = string(key_beg,key_end-key_beg); + string val = string(val_beg,val_end-val_beg); if (hasParameter(keyname)) { WARN("while loading '%s': overwriting configuration " "'%s' value '%s' with '%s'\n", path.c_str(), keyname.c_str(), - getParameter(keyname).c_str(), - string(val_beg,val_end-val_beg).c_str()); + getParameter(keyname).c_str(), val.c_str()); } - keys[keyname] = - string(val_beg,val_end-val_beg); + + keys[keyname] = val; + + // small hack to make include work with right path + if (keyname == "plugin_config_path") + AmConfig::ModConfigPath = val; + } else goto syntax_error; } diff --git a/core/etc/sems.conf.sample b/core/etc/sems.conf.sample index 9ff757a4..ae5baebf 100644 --- a/core/etc/sems.conf.sample +++ b/core/etc/sems.conf.sample @@ -12,6 +12,8 @@ # # example: option=value # i like this option # +# @filename includes mod_config_path/filename +# @/absolute/path/to/file includes file ############################################################ # Network configuration diff --git a/core/sems.h b/core/sems.h index 051d529f..0b2522b8 100644 --- a/core/sems.h +++ b/core/sems.h @@ -33,7 +33,7 @@ #endif #define CONFIG_FILE "/usr/local/etc/sems/sems.conf" -#define MOD_CFG_PATH "/usr/local/etc/sems/etc" +#define MOD_CFG_PATH "/usr/local/etc/sems/etc/" #define SER_FIFO "/tmp/ser_fifo" #define FIFO_NAME "/tmp/am_fifo" #define SEND_METHOD "unix"