Eventhandling: fix shutdownhandlers
[citadel.git] / citadel / modules / rssclient / serv_rssclient.c
index 638300feb439abdbee4bb7cb42afa3fbcd825f82..00c32971db81763ada94e14fdb363cac8b173a9a 100644 (file)
@@ -186,6 +186,7 @@ void DeleteRssCfg(void *vptr)
        }
 
        FreeAsyncIOContents(&RSSAggr->IO);
+       memset(RSSAggr, 0, sizeof(rss_aggregator));
        free(RSSAggr);
 }
 
@@ -195,7 +196,7 @@ eNextState RSSAggregator_Terminate(AsyncIO *IO)
 
        EVRSSCM_syslog(LOG_DEBUG, "RSS: Terminating.\n");
 
-
+       StopCurlWatchers(IO);
        UnlinkRSSAggregator(RSSAggr);
        return eAbort;
 }
@@ -207,6 +208,7 @@ eNextState RSSAggregator_TerminateDB(AsyncIO *IO)
        EVRSSCM_syslog(LOG_DEBUG, "RSS: Terminating.\n");
 
 
+       StopDBWatchers(&RSSAggr->IO);
        UnlinkRSSAggregator(RSSAggr);
        return eAbort;
 }
@@ -227,12 +229,6 @@ eNextState RSSAggregator_ShutdownAbort(AsyncIO *IO)
        return eAbort;
 }
 
-
-eNextState AbortNetworkSaveMessage (AsyncIO *IO)
-{
-       return eAbort; ///TODO
-}
-
 eNextState RSSSaveMessage(AsyncIO *IO)
 {
        long len;
@@ -582,9 +578,9 @@ void rss_cleanup(void)
        DeleteHash(&RSSQueueRooms);
 }
 
-void LogDebugEnableRSSClient(void)
+void LogDebugEnableRSSClient(const int n)
 {
-       RSSClientDebugEnabled = 1;
+       RSSClientDebugEnabled = n;
 }
 
 CTDL_MODULE_INIT(rssclient)
@@ -598,7 +594,7 @@ CTDL_MODULE_INIT(rssclient)
                syslog(LOG_INFO, "%s\n", curl_version());
                CtdlRegisterSessionHook(rssclient_scan, EVT_TIMER);
                CtdlRegisterEVCleanupHook(rss_cleanup);
-               CtdlRegisterDebugFlagHook(HKEY("rssclient"), LogDebugEnableRSSClient);
+               CtdlRegisterDebugFlagHook(HKEY("rssclient"), LogDebugEnableRSSClient, &RSSClientDebugEnabled);
        }
        return "rssclient";
 }