summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-03-21 19:57:14 +0000
committerAdam- <Adam-@5417fbe8-f217-4b02-8779-1006273d7864>2010-03-21 19:57:14 +0000
commit287169d6e8a0aefe12dac1df04778fa73b792682 (patch)
tree36d2172300fed75d6a1671c248704cffa1798456 /src
parentfc05827621fe0c623d2fedf9dcb47c17d57bea16 (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.cpp21
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> &params)
@@ -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;
}