diff options
author | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-03-21 19:57:14 +0000 |
---|---|---|
committer | Adam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864> | 2010-03-21 19:57:14 +0000 |
commit | 287169d6e8a0aefe12dac1df04778fa73b792682 (patch) | |
tree | 36d2172300fed75d6a1671c248704cffa1798456 /src | |
parent | fc05827621fe0c623d2fedf9dcb47c17d57bea16 (diff) |
Made the database file name configurable
git-svn-id: http://anope.svn.sourceforge.net/svnroot/anope/trunk@2830 5417fbe8-f217-4b02-8779-1006273d7864
Diffstat (limited to 'src')
-rw-r--r-- | src/core/db_plain.cpp | 21 |
1 files changed, 15 insertions, 6 deletions
diff --git a/src/core/db_plain.cpp b/src/core/db_plain.cpp index dd257c035..89fc8d469 100644 --- a/src/core/db_plain.cpp +++ b/src/core/db_plain.cpp @@ -16,6 +16,7 @@ #include "module.h" std::fstream db; +std::string DatabaseFile; /** Enum used for what METADATA type we are reading */ @@ -43,11 +44,11 @@ static void ReadDatabase(Module *m = NULL) EventReturn MOD_RESULT; MDType Type = MD_NONE; - db.open(DATABASE_FILE, std::ios_base::in); + db.open(DatabaseFile.c_str(), std::ios_base::in); if (!db.is_open()) { - ircdproto->SendGlobops(NULL, "Unable to open %s for reading!", DATABASE_FILE); + ircdproto->SendGlobops(NULL, "Unable to open %s for reading!", DatabaseFile.c_str()); return; } @@ -519,8 +520,16 @@ class DBPlain : public Module this->SetVersion("$Id$"); this->SetType(DATABASE); - Implementation i[] = { I_OnDatabaseRead, I_OnLoadDatabase, I_OnDatabaseReadMetadata, I_OnSaveDatabase, I_OnModuleLoad }; - ModuleManager::Attach(i, this, 5); + Implementation i[] = { I_OnReload, I_OnDatabaseRead, I_OnLoadDatabase, I_OnDatabaseReadMetadata, I_OnSaveDatabase, I_OnModuleLoad }; + ModuleManager::Attach(i, this, 6); + + OnReload(true); + } + + void OnReload(bool) + { + ConfigReader config; + DatabaseFile = config.ReadValue("db_plain", "database", "anope.db", 0); } EventReturn OnDatabaseRead(const std::vector<std::string> ¶ms) @@ -832,11 +841,11 @@ class DBPlain : public Module EventReturn OnSaveDatabase() { - db.open(DATABASE_FILE, std::ios_base::out | std::ios_base::trunc); + db.open(DatabaseFile.c_str(), std::ios_base::out | std::ios_base::trunc); if (!db.is_open()) { - ircdproto->SendGlobops(NULL, "Unable to open %s for writing!", DATABASE_FILE); + ircdproto->SendGlobops(NULL, "Unable to open %s for writing!", DatabaseFile.c_str()); return EVENT_CONTINUE; } |