--- smsdaemon/SmsDaemon.cpp 2008/12/12 12:54:27 180 +++ smsdaemon/SmsDaemon.cpp 2010/04/27 20:07:12 675 @@ -18,9 +18,12 @@ #include "PluginManager.h" #include "ConfigFile.h" #include "Logger.h" +#include "AccessManager.h" +#include "embedded-http/embeddedhttp.h" #include "version.h" + using namespace std; void SmsDaemon::CreateLogMessage(SMS& sms,bool hasPlugin) @@ -52,7 +55,7 @@ for (unsigned int i=0; iGetPlugin(cmd); @@ -77,7 +80,7 @@ { Common* cmn = Common::instance(); volatile bool& mainContinue = cmn->mainContinue; - + volatile bool& reloadConfig = cmn->reloadConfig; mainContinue = true; @@ -91,11 +94,30 @@ if (cmn->isDebug && kbhit()) break; + if (reloadConfig) + ReloadConfig(); + Util::Sleep(100); } } +void SmsDaemon::ReloadConfig() +{ + Common* cmn = Common::instance(); + cmn->reloadConfig = false; + + cmn->GetConfigfile()->Reload(); + + cmn->GetPluginManager()->DestroyPlugins(); + cmn->GetPluginManager()->LoadPlugins(); + + cmn->GetTaskManager()->DestroyTasks(); + cmn->GetTaskManager()->LoadTasks(); + + AccessManager::Load(); //reload blaclist & privileged list +} + void SmsDaemon::Start() { Common* cmn = Common::instance(); @@ -111,12 +133,14 @@ Logger::logMessage( SVNVERSION ); Logger::logMessage( string("Transceiver: ") + transceiver ); + AccessManager::Load(); //reload blaclist & privileged list cmn->GetTaskManager()->LoadTasks(); cmn->GetPluginManager()->LoadPlugins(); Logger::logMessage("SMS daemon started"); - _modem.DeleteAllSms(); - + embeddedHttp = new EmbeddedHttp(); + embeddedHttp->startServer(); + try { MainLoop(); @@ -130,5 +154,9 @@ Logger::logMessage( "Caught unknown exception" ); } + embeddedHttp->stopServer(); + + cmn->GetPluginManager()->DestroyPlugins(); + Logger::logMessage( cmn->getStatusMessage() ); }