X-Git-Url: https://code.citadel.org/?p=citadel.git;a=blobdiff_plain;f=citadel%2Fmodules%2Fsmtp%2Fsmtp_clienthandlers.h;h=64a405d99b6923e91617e22640a612cf758912ab;hp=38a7f58f4490795fc987ee98b8baeeb0b59e31b7;hb=a5e759daa03e43dfdd940e96c13cded7ba8de39c;hpb=959a32be2ef15652d1be4113bb1b72af24ec030c diff --git a/citadel/modules/smtp/smtp_clienthandlers.h b/citadel/modules/smtp/smtp_clienthandlers.h index 38a7f58f4..64a405d99 100644 --- a/citadel/modules/smtp/smtp_clienthandlers.h +++ b/citadel/modules/smtp/smtp_clienthandlers.h @@ -66,7 +66,7 @@ typedef struct _stmp_out_msg { char node[1024]; char name[1024]; char mailfrom[1024]; - + long SendLogin; long Flags; } SmtpOutMsg; @@ -87,26 +87,56 @@ 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, \ - "IO[%ld]CC[%d]S[%ld][%ld]" FORMAT, \ + DBGLOG(LEVEL) syslog(LEVEL, \ + "SMTPC:IO[%ld]CC[%d]S[%ld][%ld] " FORMAT, \ IO->ID, CCID, QID, N, __VA_ARGS__) #define EVSM_syslog(LEVEL, FORMAT) \ - syslog(LEVEL, \ - "IO[%ld]CC[%d]S[%ld][%ld]" FORMAT, \ + DBGLOG(LEVEL) syslog(LEVEL, \ + "SMTPC: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, "SMTPC: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, "SMTPC:IO[%ld]S[%ld][%ld] " FORMAT, \ IO->ID, QID, N) + +#define SMTPC_syslog(LEVEL, FORMAT, ...) \ + DBGLOG(LEVEL) syslog(LEVEL, \ + "SMTPCQ: " FORMAT, \ + __VA_ARGS__) + +#define SMTPCM_syslog(LEVEL, FORMAT) \ + DBGLOG(LEVEL) syslog(LEVEL, \ + "SMTPCQ: " FORMAT) + + + +typedef enum __smtpstate { + eSTMPmxlookup, + eSTMPevaluatenext, + eSTMPalookup, + eSTMPaaaalookup, + eSTMPconnecting, + eSTMPsmtp, + eSTMPsmtpdata, + eSTMPsmtpdone, + eSTMPfinished, + eSTMPfailOne, + eSMTPFailTemporary, + eSMTPFailTotal +} smtpstate; + +void SetSMTPState(AsyncIO *IO, smtpstate State);