SMTP-Client: add per facility debug logging 'smtpeventclient'
authorWilfried Goesgens <dothebart@citadel.org>
Tue, 24 Apr 2012 18:25:27 +0000 (20:25 +0200)
committerWilfried Goesgens <dothebart@citadel.org>
Tue, 24 Apr 2012 18:25:27 +0000 (20:25 +0200)
citadel/modules/smtp/serv_smtpeventclient.c
citadel/modules/smtp/smtp_clienthandlers.c
citadel/modules/smtp/smtp_clienthandlers.h

index 3037b0c0c65e39cb7f7a7fecb4c843365f2800a2..2869b8d44cc7e06c2531e71026f88bed4674549b 100644 (file)
@@ -90,6 +90,7 @@
 #include "smtpqueue.h"
 #include "smtp_clienthandlers.h"
 
+int SMTPClientDebugEnabled = 0;
 const unsigned short DefaultMXPort = 25;
 void DeleteSmtpOutMsg(void *v)
 {
@@ -829,7 +830,14 @@ eReadState SMTP_C_ReadServerStatus(AsyncIO *IO)
        return Finished;
 }
 
+void LogDebugEnableSMTPClient(void)
+{
+       SMTPClientDebugEnabled = 1;
+}
+
 CTDL_MODULE_INIT(smtp_eventclient)
 {
+       if (!threading)
+               CtdlRegisterDebugFlagHook(HKEY("smtpeventclient"), LogDebugEnableSMTPClient);
        return "smtpeventclient";
 }
index 09a1bd881b1bf1162ca43b3bb6f059e2f452a257..0a01805c6dae39dd9430b038d7dbd03977a638ea 100644 (file)
 
 #define SMTP_ERROR(WHICH_ERR, ERRSTR) do {                            \
                Msg->MyQEntry->Status = WHICH_ERR;                     \
-               StrBufAppendBufPlain(Msg->MyQEntry->StatusMessage, \
+               StrBufAppendBufPlain(Msg->MyQEntry->StatusMessage,     \
                                     HKEY(ERRSTR), 0);                 \
                return eAbort; }                                       \
        while (0)
 
 #define SMTP_VERROR(WHICH_ERR) do {                           \
                Msg->MyQEntry->Status = WHICH_ERR;             \
-               StrBufPlain(Msg->MyQEntry->StatusMessage,  \
-                           ChrPtr(Msg->IO.IOBuf) + 4,     \
-                           StrLength(Msg->IO.IOBuf) - 4); \
+               StrBufPlain(Msg->MyQEntry->StatusMessage,      \
+                           ChrPtr(Msg->IO.IOBuf) + 4,         \
+                           StrLength(Msg->IO.IOBuf) - 4);     \
                return eAbort; }                               \
        while (0)
 
index 38a7f58f4490795fc987ee98b8baeeb0b59e31b7..46532c03286a698c14b1239438e4a4a4f9234b19 100644 (file)
@@ -87,26 +87,28 @@ const double SMTP_C_ConnTimeout;
 #define F_HAVE_MX        (1<<3) /* we have a list of mx records to go through.*/
 #define F_DIRECT         (1<<4) /* no mx record found, trying direct connect. */
 
+extern int SMTPClientDebugEnabled;
 
 int smtp_resolve_recipients(SmtpOutMsg *SendMsg);
 
 #define QID ((SmtpOutMsg*)IO->Data)->MyQItem->MessageID
 #define N ((SmtpOutMsg*)IO->Data)->n
+#define DBGLOG(LEVEL) if ((LEVEL != LOG_DEBUG) || (SMTPClientDebugEnabled != 0))
 
 #define EVS_syslog(LEVEL, FORMAT, ...) \
-       syslog(LEVEL, \
+       DBGLOG(LEVEL) syslog(LEVEL,               \
               "IO[%ld]CC[%d]S[%ld][%ld]" FORMAT, \
               IO->ID, CCID, QID, N, __VA_ARGS__)
 
 #define EVSM_syslog(LEVEL, FORMAT) \
-       syslog(LEVEL, \
+       DBGLOG(LEVEL) syslog(LEVEL, \
               "IO[%ld]CC[%d]S[%ld][%ld]" FORMAT, \
               IO->ID, CCID, QID, N)
 
 #define EVNCS_syslog(LEVEL, FORMAT, ...) \
-       syslog(LEVEL, "IO[%ld]S[%ld][%ld]" FORMAT, \
+       DBGLOG(LEVEL) syslog(LEVEL, "IO[%ld]S[%ld][%ld]" FORMAT, \
               IO->ID, QID, N, __VA_ARGS__)
 
 #define EVNCSM_syslog(LEVEL, FORMAT) \
-       syslog(LEVEL, "IO[%ld]S[%ld][%ld]" FORMAT, \
+       DBGLOG(LEVEL) syslog(LEVEL, "IO[%ld]S[%ld][%ld]" FORMAT, \
               IO->ID, QID, N)