]> code.citadel.org Git - citadel.git/blobdiff - citadel/modules/c-ares-dns/serv_c-ares-dns.c
Make logging configurable
[citadel.git] / citadel / modules / c-ares-dns / serv_c-ares-dns.c
index 8d433268dc0e6c56cc4292e9a263ac40e6259d02..13e156a80879a3ecb17ceb7e8e318d839a59cea9 100644 (file)
@@ -57,6 +57,7 @@
 #include "ctdl_module.h"
 #include "event_client.h"
 
+int DebugCAres = 0;
 
 extern struct ev_loop *event_base;
 
@@ -433,6 +434,7 @@ int QueueQuery(ns_type Type,
 
        IO->DNS.Query = QueryParts;
        IO->DNS.Query->PostDNS = PostDNS;
+       IO->DNS.Start = IO->Now;
 
        InitC_ares_dns(IO);
 
@@ -521,6 +523,7 @@ static void DNS_send_callback(struct ev_loop *loop, ev_io *watcher, int revents)
 {
        AsyncIO *IO = watcher->data;
 
+       IO->Now = ev_now(event_base);
 #ifdef DEBUG_CARES
        EV_syslog(LOG_DEBUG, "C-ARES: %s\n", __FUNCTION__);
 #endif
@@ -533,6 +536,8 @@ static void DNS_recv_callback(struct ev_loop *loop, ev_io *watcher, int revents)
 {
        AsyncIO *IO = watcher->data;
 
+       IO->Now = ev_now(event_base);
+
 #ifdef DEBUG_CARES
        EV_syslog(LOG_DEBUG, "C-ARES: %s\n", __FUNCTION__);
 #endif
@@ -564,6 +569,7 @@ void SockStateCb(void *data, int sock, int read, int write)
                  IO->DNS.SourcePort);
 }
 #endif
+       IO->Now = ev_now(event_base);
 
        if (read) {
                if ((IO->DNS.recv_event.fd != sock) &&
@@ -604,11 +610,16 @@ void SockStateCb(void *data, int sock, int read, int write)
                ev_io_stop(event_base, &IO->DNS.send_event);
        }
 }
+void EnableDebugCAres(void)
+{
+       DebugCAres = 1;
+}
 
 CTDL_MODULE_INIT(c_ares_client)
 {
        if (!threading)
        {
+               CtdlRegisterDebugFlagHook(HKEY("cares"), EnableDebugCAres);
                int r = ares_library_init(ARES_LIB_INIT_ALL);
                if (0 != r) {