--- smsdaemon/SmsDaemon.cpp 2008/12/08 21:49:49 158 +++ smsdaemon/SmsDaemon.cpp 2008/12/21 18:41:08 208 @@ -52,7 +52,7 @@ for (unsigned int i=0; iGetPlugin(cmd); @@ -68,7 +68,6 @@ _modem.SendSms(sms[i].GetSender(), "Unknown command!", false); } - _modem.DeleteSms(sms[i].GetIndex()); cmn->smsCounter.incomming++; } } @@ -78,7 +77,7 @@ { Common* cmn = Common::instance(); volatile bool& mainContinue = cmn->mainContinue; - + volatile bool& reloadConfig = cmn->reloadConfig; mainContinue = true; @@ -92,11 +91,29 @@ 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(); + +} + void SmsDaemon::Start() { Common* cmn = Common::instance(); @@ -117,7 +134,7 @@ Logger::logMessage("SMS daemon started"); _modem.DeleteAllSms(); - + try { MainLoop(); @@ -131,5 +148,7 @@ Logger::logMessage( "Caught unknown exception" ); } + cmn->GetPluginManager()->DestroyPlugins(); + Logger::logMessage( cmn->getStatusMessage() ); }