summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/authserver/Main.cpp10
-rw-r--r--src/server/game/World/World.cpp2
-rw-r--r--src/server/shared/Configuration/Config.cpp25
-rw-r--r--src/server/shared/Configuration/Config.h4
-rw-r--r--src/server/worldserver/Main.cpp11
5 files changed, 38 insertions, 14 deletions
diff --git a/src/server/authserver/Main.cpp b/src/server/authserver/Main.cpp
index ae0fcc9f95..7cd3f00a27 100644
--- a/src/server/authserver/Main.cpp
+++ b/src/server/authserver/Main.cpp
@@ -104,7 +104,15 @@ extern int main(int argc, char** argv)
++count;
}
- if (!sConfigMgr->LoadInitial(configFile))
+ std::string cfg_def_file=_TRINITY_REALM_CONFIG;
+ cfg_def_file += ".dist";
+
+ if (!sConfigMgr->LoadInitial(cfg_def_file.c_str())) {
+ printf("Invalid or missing default configuration file : %s\n", cfg_def_file.c_str());
+ return 1;
+ }
+
+ if (!sConfigMgr->LoadMore(configFile))
{
printf("Invalid or missing configuration file : %s\n", configFile);
printf("Verify that the file exists and has \'[authserver]\' written in the top of the file!\n");
diff --git a/src/server/game/World/World.cpp b/src/server/game/World/World.cpp
index 86b087a46c..0bfd8ca3ad 100644
--- a/src/server/game/World/World.cpp
+++ b/src/server/game/World/World.cpp
@@ -429,7 +429,7 @@ void World::LoadConfigSettings(bool reload)
{
if (!sConfigMgr->Reload())
{
- sLog->outError("World settings reload fail: can't read settings from %s.", sConfigMgr->GetFilename().c_str());
+ sLog->outError("World settings reload fail: can't read settings.");
return;
}
diff --git a/src/server/shared/Configuration/Config.cpp b/src/server/shared/Configuration/Config.cpp
index 43b50b49e0..2dce7a7482 100644
--- a/src/server/shared/Configuration/Config.cpp
+++ b/src/server/shared/Configuration/Config.cpp
@@ -49,10 +49,9 @@ bool ConfigMgr::LoadInitial(char const* file)
GuardType guard(_configLock);
- _filename = file;
_config.reset(new ACE_Configuration_Heap());
if (_config->open() == 0)
- if (LoadData(_filename.c_str()))
+ if (LoadData(file))
return true;
_config.reset();
@@ -71,11 +70,25 @@ bool ConfigMgr::LoadMore(char const* file)
bool ConfigMgr::Reload()
{
- return LoadInitial(_filename.c_str());
+ for(std::vector<std::string>::iterator it = _confFiles.begin(); it != _confFiles.end(); ++it) {
+ if (it==_confFiles.begin()) {
+ if (!LoadInitial((*it).c_str()))
+ return false;
+ } else {
+ if (!LoadMore((*it).c_str()))
+ return false;
+ }
+ }
+
+ return true;
}
bool ConfigMgr::LoadData(char const* file)
{
+ if(std::find(_confFiles.begin(), _confFiles.end(), file) == _confFiles.end()) {
+ _confFiles.push_back(file);
+ }
+
ACE_Ini_ImpExp config_importer(*_config.get());
if (config_importer.import_config(file) == 0)
return true;
@@ -112,12 +125,6 @@ float ConfigMgr::GetFloatDefault(const char* name, float def)
return GetValueHelper(name, val) ? (float)atof(val.c_str()) : def;
}
-std::string const& ConfigMgr::GetFilename()
-{
- GuardType guard(_configLock);
- return _filename;
-}
-
std::list<std::string> ConfigMgr::GetKeysByString(std::string const& name)
{
GuardType guard(_configLock);
diff --git a/src/server/shared/Configuration/Config.h b/src/server/shared/Configuration/Config.h
index c640bcfbbf..cb51293b30 100644
--- a/src/server/shared/Configuration/Config.h
+++ b/src/server/shared/Configuration/Config.h
@@ -21,6 +21,7 @@
#include <string>
#include <list>
+#include <vector>
#include <ace/Singleton.h>
#include <ace/Configuration_Import_Export.h>
#include <ace/Thread_Mutex.h>
@@ -55,7 +56,6 @@ public:
int GetIntDefault(const char* name, int def);
float GetFloatDefault(const char* name, float def);
- std::string const& GetFilename();
std::list<std::string> GetKeysByString(std::string const& name);
private:
@@ -65,7 +65,7 @@ private:
typedef ACE_Thread_Mutex LockType;
typedef ACE_Guard<LockType> GuardType;
- std::string _filename;
+ std::vector<std::string> _confFiles;
Config _config;
LockType _configLock;
diff --git a/src/server/worldserver/Main.cpp b/src/server/worldserver/Main.cpp
index 0a00f1d1b7..2ce34822f9 100644
--- a/src/server/worldserver/Main.cpp
+++ b/src/server/worldserver/Main.cpp
@@ -125,12 +125,21 @@ extern int main(int argc, char** argv)
++c;
}
- if (!sConfigMgr->LoadInitial(cfg_file))
+ std::string cfg_def_file=_TRINITY_CORE_CONFIG;
+ cfg_def_file += ".dist";
+
+ if (!sConfigMgr->LoadInitial(cfg_def_file.c_str())) {
+ printf("Invalid or missing default configuration file : %s\n", cfg_def_file.c_str());
+ return 1;
+ }
+
+ if (!sConfigMgr->LoadMore(cfg_file))
{
printf("Invalid or missing configuration file : %s\n", cfg_file);
printf("Verify that the file exists and has \'[worldserver]' written in the top of the file!\n");
return 1;
}
+
sLog->outString("Using configuration file %s.", cfg_file);
sLog->outString("Using SSL version: %s (library: %s)", OPENSSL_VERSION_TEXT, SSLeay_version(SSLEAY_VERSION));