--- smsdaemon/SmsDaemon.cpp 2008/12/07 20:58:41 149 +++ smsdaemon/SmsDaemon.cpp 2010/04/27 20:07:12 675 @@ -5,20 +5,25 @@ #include #include -#include "common.h" +#include "Common.h" #include "ISmsTransceiver.h" #include "Plugin.h" #include "kbhit.h" -#include "util.h" +#include "Util.h" #include "TaskManager.h" #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) @@ -28,7 +33,7 @@ if (!hasPlugin) os << " -- PLUGIN NOT FOUND"; - Common::instance()->logMessage(os.str()); + Logger::logMessage(os.str()); } @@ -50,7 +55,7 @@ for (unsigned int i=0; iGetPlugin(cmd); @@ -66,7 +71,6 @@ _modem.SendSms(sms[i].GetSender(), "Unknown command!", false); } - _modem.DeleteSms(sms[i].GetIndex()); cmn->smsCounter.incomming++; } } @@ -76,7 +80,7 @@ { Common* cmn = Common::instance(); volatile bool& mainContinue = cmn->mainContinue; - + volatile bool& reloadConfig = cmn->reloadConfig; mainContinue = true; @@ -90,42 +94,69 @@ 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(); + string transceiver = cmn->GetConfigfile()->GetValue("smsdaemon","transceiver"); srand(time(0)); cmn->daemonStart = time(0); _lastSmsCheck = Util::GetTimeOfDay(); - cmn->logMessage("--------------------------------"); - cmn->logMessage( VERSION ); - cmn->logMessage( SVNVERSION ); + Logger::logMessage("--------------------------------"); + Logger::logMessage( VERSION ); + Logger::logMessage( SVNVERSION ); + Logger::logMessage( string("Transceiver: ") + transceiver ); + AccessManager::Load(); //reload blaclist & privileged list cmn->GetTaskManager()->LoadTasks(); cmn->GetPluginManager()->LoadPlugins(); - cmn->logMessage("SMS daemon started"); + Logger::logMessage("SMS daemon started"); + + embeddedHttp = new EmbeddedHttp(); + embeddedHttp->startServer(); - _modem.DeleteAllSms(); - try { MainLoop(); } catch (std::exception& e) { - cmn->logMessage( e.what() ); + Logger::logMessage( e.what() ); } catch (...) { - cmn->logMessage( "Caught unknown exception" ); + Logger::logMessage( "Caught unknown exception" ); } - cmn->logMessage( cmn->getStatusMessage() ); + embeddedHttp->stopServer(); + + cmn->GetPluginManager()->DestroyPlugins(); + + Logger::logMessage( cmn->getStatusMessage() ); }