X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/48ed62d9a68c4e44c9fbaa6e300f88401bb32d65..24c929a2:/src/src/receive.c diff --git a/src/src/receive.c b/src/src/receive.c index 651121956..4d97a1930 100644 --- a/src/src/receive.c +++ b/src/src/receive.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/receive.c,v 1.41 2007/08/22 14:20:28 ph10 Exp $ */ +/* $Cambridge: exim/src/src/receive.c,v 1.44 2008/01/22 19:23:46 fanf2 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -11,12 +11,40 @@ #include "exim.h" +#if (defined EXPERIMENTAL_DOMAINKEYS) && (defined EXPERIMENTAL_DKIM) + +#warning Chaining Domainkeys via DKIM receive functions +#define RECEIVE_GETC dkim_receive_getc +#define RECEIVE_UNGETC dkim_receive_ungetc + +#else + +#if (defined EXPERIMENTAL_DOMAINKEYS) || (defined EXPERIMENTAL_DKIM) + #ifdef EXPERIMENTAL_DOMAINKEYS +#warning Using Domainkeys receive functions #define RECEIVE_GETC dk_receive_getc #define RECEIVE_UNGETC dk_receive_ungetc +#endif +#ifdef EXPERIMENTAL_DKIM +#warning Using DKIM receive functions +#define RECEIVE_GETC dkim_receive_getc +#define RECEIVE_UNGETC dkim_receive_ungetc +#endif + #else + +/* Normal operation */ #define RECEIVE_GETC receive_getc #define RECEIVE_UNGETC receive_ungetc + +#endif + +#endif + + +#ifdef EXPERIMENTAL_DCC +extern int dcc_ok; #endif /************************************************* @@ -1393,6 +1421,12 @@ message_linecount = body_linecount = body_zerocount = inside dk_exim_verify_init(). */ dk_exim_verify_init(); #endif +#ifdef EXPERIMENTAL_DKIM +/* Call into DKIM to set up the context. Check if DKIM is to be run are carried out + inside dk_exim_verify_init(). */ +dkim_exim_verify_init(); +#endif + /* Remember the time of reception. Exim uses time+pid for uniqueness of message ids, and fractions of a second are required. See the comments that precede the @@ -2551,9 +2585,10 @@ if (from_header != NULL && if (sender_address_unrewritten == NULL) sender_address_unrewritten = sender_address; sender_address = generated_sender_address; - log_write(L_address_rewrite, LOG_MAIN, - "\"%s\" from env-from rewritten as \"%s\" by submission mode", - sender_address_unrewritten, generated_sender_address); + if (Ustrcmp(sender_address_unrewritten, generated_sender_address) != 0) + log_write(L_address_rewrite, LOG_MAIN, + "\"%s\" from env-from rewritten as \"%s\" by submission mode", + sender_address_unrewritten, generated_sender_address); } } @@ -2975,6 +3010,9 @@ else #ifdef EXPERIMENTAL_DOMAINKEYS dk_exim_verify_finish(); #endif +#ifdef EXPERIMENTAL_DKIM + dkim_exim_verify_finish(); +#endif #ifdef WITH_CONTENT_SCAN if (acl_smtp_mime != NULL && @@ -3077,6 +3115,11 @@ else unspool_mbox(); #endif +#ifdef EXPERIMENTAL_DCC +dcc_ok = 0; +#endif + + /* The final check on the message is to run the scan_local() function. The version supplied with Exim always accepts, but this is a hook for sysadmins to supply their own checking code. The local_scan() function is run even when all