ev_io_stop(event_base, &IO->DNS.send_event);
}
}
-void EnableDebugCAres(void)
+void EnableDebugCAres(const int n)
{
- DebugCAres = 1;
+ DebugCAres = n;
}
CTDL_MODULE_INIT(c_ares_client)
{
if (!threading)
{
- CtdlRegisterDebugFlagHook(HKEY("cares"), EnableDebugCAres);
+ CtdlRegisterDebugFlagHook(HKEY("cares"), EnableDebugCAres, &DebugCAres);
int r = ares_library_init(ARES_LIB_INIT_ALL);
if (0 != r) {
pthread_mutex_unlock(&EventQueueMutex);
}
-void DebugEventloopEnable(void)
+void DebugEventloopEnable(const int n)
{
- DebugEventLoop = 1;
+ DebugEventLoop = n;
}
-void DebugEventloopBacktraceEnable(void)
+void DebugEventloopBacktraceEnable(const int n)
{
- DebugEventLoopBacktrace = 1;
+ DebugEventLoopBacktrace = n;
}
-void DebugCurlEnable(void)
+void DebugCurlEnable(const int n)
{
- DebugCurl = 1;
+ DebugCurl = n;
}
CTDL_MODULE_INIT(event_client)
{
if (!threading)
{
- CtdlRegisterDebugFlagHook(HKEY("eventloop"), DebugEventloopEnable);
- CtdlRegisterDebugFlagHook(HKEY("eventloopbacktrace"), DebugEventloopBacktraceEnable);
- CtdlRegisterDebugFlagHook(HKEY("curl"), DebugCurlEnable);
+ CtdlRegisterDebugFlagHook(HKEY("eventloop"), DebugEventloopEnable, &DebugEventLoop);
+ CtdlRegisterDebugFlagHook(HKEY("eventloopbacktrace"), DebugEventloopBacktraceEnable, &DebugEventLoopBacktrace);
+ CtdlRegisterDebugFlagHook(HKEY("curl"), DebugCurlEnable, &DebugCurl);
InitEventQueue();
DBInitEventQueue();
CtdlThreadCreate(client_event_thread);
free(working_ignetcfg);
}
-void LogDebugEnableNetworkClient(void)
+void LogDebugEnableNetworkClient(const int n)
{
- NetworkClientDebugEnabled = 1;
+ NetworkClientDebugEnabled = n;
}
/*
* Module entry point
CtdlFillSystemContext(&networker_client_CC, "CitNetworker");
CtdlRegisterSessionHook(network_do_clientqueue, EVT_TIMER);
- CtdlRegisterDebugFlagHook(HKEY("networkclient"), LogDebugEnableNetworkClient);
+ CtdlRegisterDebugFlagHook(HKEY("networkclient"), LogDebugEnableNetworkClient, &NetworkClientDebugEnabled);
}
return "networkclient";
-void LogDebugEnablePOP3Client(void)
+void LogDebugEnablePOP3Client(const int n)
{
- POP3ClientDebugEnabled = 1;
+ POP3ClientDebugEnabled = n;
}
CTDL_MODULE_INIT(pop3client)
POP3FetchUrls = NewHash(1, NULL);
CtdlRegisterSessionHook(pop3client_scan, EVT_TIMER);
CtdlRegisterEVCleanupHook(pop3_cleanup);
- CtdlRegisterDebugFlagHook(HKEY("pop3client"), LogDebugEnablePOP3Client);
+ CtdlRegisterDebugFlagHook(HKEY("pop3client"), LogDebugEnablePOP3Client, &POP3ClientDebugEnabled);
}
/* return our module id for the log */
DeleteHash(&KnownNameSpaces);
}
-void LogDebugEnableRSSATOMParser(void)
+void LogDebugEnableRSSATOMParser(const int n)
{
- RSSAtomParserDebugEnabled = 1;
+ RSSAtomParserDebugEnabled = n;
}
CTDL_MODULE_INIT(rssparser)
/* we don't like these namespaces because of they shadow our usefull parameters. */
Put(KnownNameSpaces, HKEY("http://search.yahoo.com/mrss/"), NULL, reference_free_handler);
#endif
- CtdlRegisterDebugFlagHook(HKEY("RSSAtomParser"), LogDebugEnableRSSATOMParser);
+ CtdlRegisterDebugFlagHook(HKEY("RSSAtomParser"), LogDebugEnableRSSATOMParser, &RSSAtomParserDebugEnabled);
CtdlRegisterCleanupHook(rss_parser_cleanup);
}
return "rssparser";
DeleteHash(&RSSQueueRooms);
}
-void LogDebugEnableRSSClient(void)
+void LogDebugEnableRSSClient(const int n)
{
- RSSClientDebugEnabled = 1;
+ RSSClientDebugEnabled = n;
}
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";
}
return Finished;
}
-void LogDebugEnableSMTPClient(void)
+void LogDebugEnableSMTPClient(const int n)
{
- SMTPClientDebugEnabled = 1;
+ SMTPClientDebugEnabled = n;
}
CTDL_MODULE_INIT(smtp_eventclient)
{
if (!threading)
- CtdlRegisterDebugFlagHook(HKEY("smtpeventclient"), LogDebugEnableSMTPClient);
+ CtdlRegisterDebugFlagHook(HKEY("smtpeventclient"), LogDebugEnableSMTPClient, &SMTPClientDebugEnabled);
return "smtpeventclient";
}
CtdlDbgFunction F;
const char *Name;
long Len;
+ const int *LogP;
} LogDebugEntry;
HashList *LogDebugEntryTable = NULL;
return ret;
}
-/*
-typedef struct __LogDebugEntry {
- CtdlDbgFunction F;
- const char *Name;
- long Len;
-} LogDebugEntry;
-HashList *LogDebugEntryTable = NULL;
-*/
-void CtdlRegisterDebugFlagHook(const char *Name, long Len, CtdlDbgFunction F)
+
+void CtdlRegisterDebugFlagHook(const char *Name, long Len, CtdlDbgFunction F, const int *LogP)
{
LogDebugEntry *E;
if (LogDebugEntryTable == NULL)
E->F = F;
E->Name = Name;
E->Len = Len;
+ E->LogP = LogP;
Put(LogDebugEntryTable, Name, Len, E, NULL);
}
(vptr != NULL))
{
LogDebugEntry *E = (LogDebugEntry*)vptr;
- E->F();
+ E->F(1);
}
}
}
Pos = GetNewHashPos(LogDebugEntryTable, 0);
while (GetNextHashPos(LogDebugEntryTable, Pos, &HKLen, &ch, &vptr)) {
LogDebugEntry *E = (LogDebugEntry*)vptr;
- E->F();
+ E->F(1);
}
DeleteHashPos(&Pos);
}
}
+void cmd_log_get(char *argbuf)
+{
+ long HKLen;
+ const char *ch;
+ HashPos *Pos;
+ void *vptr;
+
+ if (CtdlAccessCheck(ac_aide)) return;
+
+ cprintf("%d Log modules enabled:\n", LISTING_FOLLOWS);
+
+ Pos = GetNewHashPos(LogDebugEntryTable, 0);
+
+ while (GetNextHashPos(LogDebugEntryTable, Pos, &HKLen, &ch, &vptr)) {
+ LogDebugEntry *E = (LogDebugEntry*)vptr;
+ cprintf("%s: %d\n", ch, *E->LogP);
+ }
+
+ DeleteHashPos(&Pos);
+ cprintf("000\n");
+}
+void cmd_log_set(char *argbuf)
+{
+ void *vptr;
+ int lset;
+ int wlen;
+ char which[SIZ] = "";
+
+ if (CtdlAccessCheck(ac_aide)) return;
+
+ wlen = extract_token(which, argbuf, 0, '|', sizeof(which));
+ if (wlen < 0) wlen = 0;
+ lset = extract_int(argbuf, 1);
+ if (lset != 0) lset = 1;
+ if (GetHash(LogDebugEntryTable, which, wlen, &vptr) &&
+ (vptr != NULL))
+ {
+ LogDebugEntry *E = (LogDebugEntry*)vptr;
+ E->F(lset);
+ cprintf("%d %s|%d\n", CIT_OK, which, lset);
+ }
+ else {
+ cprintf("%d Log setting %s not known\n",
+ ERROR, which);
+ }
+}
void CtdlDestroyDebugTable(void)
{
CtdlStartTLS (ok_response, nosup_response, error_response);
#endif
}
+
+
+CTDL_MODULE_INIT(modules)
+{
+ if (!threading) {
+ CtdlRegisterProtoHook(cmd_log_get, "LOGP", "Print Log-parameters");
+ CtdlRegisterProtoHook(cmd_log_set, "LOGS", "Set Log-parameters");
+ }
+ return "modules";
+}
/*
*/
-typedef void (*CtdlDbgFunction) (void);
+typedef void (*CtdlDbgFunction) (const int);
void CtdlDestroyFixedOutputHooks(void);
int PerformFixedOutputHooks(char *, char *, int);
-void CtdlRegisterDebugFlagHook(const char *Name, long len, CtdlDbgFunction F);
+void CtdlRegisterDebugFlagHook(const char *Name, long len, CtdlDbgFunction F, const int *);
void CtdlSetDebugLogFacilities(const char **Str, long n);
void CtdlDestroyDebugTable(void);