X-Git-Url: https://code.citadel.org/?a=blobdiff_plain;f=citadel%2Fmodules%2Fnetwork%2Fserv_networkclient.c;h=1a027ea2384e8ed481398cec9f6104e895118c6b;hb=eee9a1429dd032114946aad9e70fd8d84afbe918;hp=0023d83631904b0dfa1eb5dbe2d359e3c2fa84a8;hpb=a9ab02668c2918e667837cd6ee09629dcbf12703;p=citadel.git diff --git a/citadel/modules/network/serv_networkclient.c b/citadel/modules/network/serv_networkclient.c index 0023d8363..1a027ea23 100644 --- a/citadel/modules/network/serv_networkclient.c +++ b/citadel/modules/network/serv_networkclient.c @@ -91,22 +91,26 @@ struct CitContext networker_client_CC; #define NODE ChrPtr(((AsyncNetworker*)IO->Data)->node) #define N ((AsyncNetworker*)IO->Data)->n +int NetworkClientDebugEnabled = 0; + +#define DBGLOG(LEVEL) if ((LEVEL != LOG_DEBUG) || (NetworkClientDebugEnabled != 0)) + #define EVN_syslog(LEVEL, FORMAT, ...) \ - syslog(LEVEL, \ + DBGLOG(LEVEL) syslog(LEVEL, \ "IO[%ld]CC[%d]NW[%s][%ld]" FORMAT, \ IO->ID, CCID, NODE, N, __VA_ARGS__) #define EVNM_syslog(LEVEL, FORMAT) \ - syslog(LEVEL, \ + DBGLOG(LEVEL) syslog(LEVEL, \ "IO[%ld]CC[%d]NW[%s][%ld]" FORMAT, \ IO->ID, CCID, NODE, N) #define EVNCS_syslog(LEVEL, FORMAT, ...) \ - syslog(LEVEL, "IO[%ld]NW[%s][%ld]" FORMAT, \ + DBGLOG(LEVEL) syslog(LEVEL, "IO[%ld]NW[%s][%ld]" FORMAT, \ IO->ID, NODE, N, __VA_ARGS__) #define EVNCSM_syslog(LEVEL, FORMAT) \ - syslog(LEVEL, "IO[%ld]NW[%s][%ld]" FORMAT, \ + DBGLOG(LEVEL) syslog(LEVEL, "IO[%ld]NW[%s][%ld]" FORMAT, \ IO->ID, NODE, N) @@ -157,7 +161,12 @@ void DeleteNetworker(void *vptr) FreeStrBuf(&NW->port); FreeStrBuf(&NW->secret); FreeStrBuf(&NW->Url); + FreeStrBuf(&NW->IO.ErrMsg); FreeAsyncIOContents(&NW->IO); + if (NW->HostLookup.VParsedDNSReply != NULL) { + NW->HostLookup.DNSReplyFree(NW->HostLookup.VParsedDNSReply); + NW->HostLookup.VParsedDNSReply = NULL; + } free(NW); } @@ -808,6 +817,13 @@ eNextState NWC_Terminate(AsyncIO *IO) return eAbort; } +eNextState NWC_TerminateDB(AsyncIO *IO) +{ + EVN_syslog(LOG_DEBUG, "%s\n", __FUNCTION__); + FinalizeNetworker(IO); + return eAbort; +} + eNextState NWC_Timeout(AsyncIO *IO) { AsyncNetworker *NW = IO->Data; @@ -881,6 +897,7 @@ void RunNetworker(AsyncNetworker *NW) NWC_DispatchWriteDone, NWC_DispatchReadDone, NWC_Terminate, + NWC_TerminateDB, NWC_ConnFail, NWC_Timeout, NWC_Shutdown); @@ -1020,8 +1037,10 @@ void network_do_clientqueue(void) free(working_ignetcfg); } - - +void LogDebugEnableNetworkClient(const int n) +{ + NetworkClientDebugEnabled = n; +} /* * Module entry point */ @@ -1032,6 +1051,8 @@ CTDL_MODULE_INIT(network_client) CtdlFillSystemContext(&networker_client_CC, "CitNetworker"); CtdlRegisterSessionHook(network_do_clientqueue, EVT_TIMER); + CtdlRegisterDebugFlagHook(HKEY("networkclient"), LogDebugEnableNetworkClient, &NetworkClientDebugEnabled); + } - return "network_client"; + return "networkclient"; }