summaryrefslogtreecommitdiffstats
path: root/src/daemon/Daemon.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/daemon/Daemon.cpp')
-rw-r--r--src/daemon/Daemon.cpp160
1 files changed, 0 insertions, 160 deletions
diff --git a/src/daemon/Daemon.cpp b/src/daemon/Daemon.cpp
index e864c466..1516f159 100644
--- a/src/daemon/Daemon.cpp
+++ b/src/daemon/Daemon.cpp
@@ -203,163 +203,6 @@ static void dumpsocket_shutdown()
}
}
-
-/* Cron handling */
-
-typedef struct cron_callback_data_t
-{
- std::string m_sPluginName;
- std::string m_sPluginArgs;
- unsigned int m_nTimeout;
-
- cron_callback_data_t(
- const std::string& pPluginName,
- const std::string& pPluginArgs,
- const unsigned int& pTimeout) :
- m_sPluginName(pPluginName),
- m_sPluginArgs(pPluginArgs),
- m_nTimeout(pTimeout)
- {}
-} cron_callback_data_t;
-
-static void cron_delete_callback_data_cb(gpointer data)
-{
- cron_callback_data_t* cronDeleteCallbackData = static_cast<cron_callback_data_t*>(data);
- delete cronDeleteCallbackData;
-}
-
-static gboolean cron_activation_periodic_cb(gpointer data)
-{
- cron_callback_data_t* cronPeriodicCallbackData = static_cast<cron_callback_data_t*>(data);
- VERB1 log("Activating plugin: %s", cronPeriodicCallbackData->m_sPluginName.c_str());
- RunAction(DEBUG_DUMPS_DIR,
- cronPeriodicCallbackData->m_sPluginName.c_str(),
- cronPeriodicCallbackData->m_sPluginArgs.c_str()
- );
- return TRUE;
-}
-static gboolean cron_activation_one_cb(gpointer data)
-{
- cron_callback_data_t* cronOneCallbackData = static_cast<cron_callback_data_t*>(data);
- VERB1 log("Activating plugin: %s", cronOneCallbackData->m_sPluginName.c_str());
- RunAction(DEBUG_DUMPS_DIR,
- cronOneCallbackData->m_sPluginName.c_str(),
- cronOneCallbackData->m_sPluginArgs.c_str()
- );
- return FALSE;
-}
-static gboolean cron_activation_reshedule_cb(gpointer data)
-{
- cron_callback_data_t* cronResheduleCallbackData = static_cast<cron_callback_data_t*>(data);
- VERB1 log("Rescheduling plugin: %s", cronResheduleCallbackData->m_sPluginName.c_str());
- cron_callback_data_t* cronPeriodicCallbackData = new cron_callback_data_t(cronResheduleCallbackData->m_sPluginName,
- cronResheduleCallbackData->m_sPluginArgs,
- cronResheduleCallbackData->m_nTimeout);
- g_timeout_add_seconds_full(G_PRIORITY_DEFAULT,
- cronPeriodicCallbackData->m_nTimeout,
- cron_activation_periodic_cb,
- static_cast<gpointer>(cronPeriodicCallbackData),
- cron_delete_callback_data_cb
- );
- return FALSE;
-}
-
-static int SetUpCron()
-{
- map_cron_t::iterator it_c = g_settings_mapCron.begin();
- for (; it_c != g_settings_mapCron.end(); it_c++)
- {
- std::string::size_type pos = it_c->first.find(":");
- int timeout = 0;
- int nH = -1;
- int nM = -1;
- int nS = -1;
-
-//TODO: rewrite using good old sscanf?
-
- if (pos != std::string::npos)
- {
- std::string sH;
- std::string sM;
-
- sH = it_c->first.substr(0, pos);
- nH = xatou(sH.c_str());
- nH = nH > 23 ? 23 : nH;
- nH = nH < 0 ? 0 : nH;
- timeout += nH * 60 * 60;
- sM = it_c->first.substr(pos + 1);
- nM = xatou(sM.c_str());
- nM = nM > 59 ? 59 : nM;
- nM = nM < 0 ? 0 : nM;
- timeout += nM * 60;
- }
- else
- {
- std::string sS;
-
- sS = it_c->first;
- nS = xatou(sS.c_str());
- nS = nS <= 0 ? 1 : nS;
- timeout = nS;
- }
-
- if (nS != -1)
- {
- vector_pair_string_string_t::iterator it_ar = it_c->second.begin();
- for (; it_ar != it_c->second.end(); it_ar++)
- {
- cron_callback_data_t* cronPeriodicCallbackData = new cron_callback_data_t(it_ar->first, it_ar->second, timeout);
- g_timeout_add_seconds_full(G_PRIORITY_DEFAULT,
- timeout,
- cron_activation_periodic_cb,
- static_cast<gpointer>(cronPeriodicCallbackData),
- cron_delete_callback_data_cb);
- }
- }
- else
- {
- time_t actTime = time(NULL);
- struct tm locTime;
- localtime_r(&actTime, &locTime);
- locTime.tm_hour = nH;
- locTime.tm_min = nM;
- locTime.tm_sec = 0;
- time_t nextTime = mktime(&locTime);
- if (nextTime == ((time_t)-1))
- {
- /* paranoia */
- perror_msg("Can't set up cron time");
- return -1;
- }
- if (actTime > nextTime)
- {
- timeout = 24*60*60 + (nextTime - actTime);
- }
- else
- {
- timeout = nextTime - actTime;
- }
- vector_pair_string_string_t::iterator it_ar = it_c->second.begin();
- for (; it_ar != it_c->second.end(); it_ar++)
- {
- cron_callback_data_t* cronOneCallbackData = new cron_callback_data_t(it_ar->first, it_ar->second, timeout);
- g_timeout_add_seconds_full(G_PRIORITY_DEFAULT,
- timeout,
- cron_activation_one_cb,
- static_cast<gpointer>(cronOneCallbackData),
- cron_delete_callback_data_cb);
- cron_callback_data_t* cronResheduleCallbackData = new cron_callback_data_t(it_ar->first, it_ar->second, 24 * 60 * 60);
- g_timeout_add_seconds_full(G_PRIORITY_DEFAULT,
- timeout,
- cron_activation_reshedule_cb,
- static_cast<gpointer>(cronResheduleCallbackData),
- cron_delete_callback_data_cb);
- }
- }
- }
- return 0;
-}
-
static int CreatePidFile()
{
int fd;
@@ -837,9 +680,6 @@ int main(int argc, char** argv)
g_pPluginManager = new CPluginManager();
g_pPluginManager->LoadPlugins();
- if (SetUpCron() != 0)
- throw 1;
-
/* Add an event source which waits for INT/TERM signal */
VERB1 log("Adding signal pipe watch to glib main loop");
channel_signal = g_io_channel_unix_new(s_signal_pipe[0]);