X-Git-Url: https://git.exim.org/users/jgh/exim.git/blobdiff_plain/40df1be3e45617c8f878ad728bd14053a38cd932..4cd12fe93ef77f86049ceeb9f949b8b39cfd69b3:/src/src/transports/smtp.c diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c index 3c09c9181..4e1f3c45b 100644 --- a/src/src/transports/smtp.c +++ b/src/src/transports/smtp.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/transports/smtp.c,v 1.38 2007/09/28 12:21:57 tom Exp $ */ +/* $Cambridge: exim/src/src/transports/smtp.c,v 1.39 2008/03/05 21:13:23 tom Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -39,7 +39,7 @@ optionlist smtp_transport_options[] = { (void *)offsetof(smtp_transport_options_block, data_timeout) }, { "delay_after_cutoff", opt_bool, (void *)offsetof(smtp_transport_options_block, delay_after_cutoff) }, -#ifdef EXPERIMENTAL_DOMAINKEYS + #if (defined EXPERIMENTAL_DOMAINKEYS) || (defined EXPERIMENTAL_DKIM) { "dk_canon", opt_stringptr, (void *)offsetof(smtp_transport_options_block, dk_canon) }, { "dk_domain", opt_stringptr, @@ -52,8 +52,6 @@ optionlist smtp_transport_options[] = { (void *)offsetof(smtp_transport_options_block, dk_selector) }, { "dk_strict", opt_stringptr, (void *)offsetof(smtp_transport_options_block, dk_strict) }, -#endif -#ifdef EXPERIMENTAL_DKIM { "dkim_canon", opt_stringptr, (void *)offsetof(smtp_transport_options_block, dkim_canon) }, { "dkim_domain", opt_stringptr, @@ -66,7 +64,7 @@ optionlist smtp_transport_options[] = { (void *)offsetof(smtp_transport_options_block, dkim_sign_headers) }, { "dkim_strict", opt_stringptr, (void *)offsetof(smtp_transport_options_block, dkim_strict) }, -#endif + #endif { "dns_qualify_single", opt_bool, (void *)offsetof(smtp_transport_options_block, dns_qualify_single) }, { "dns_search_parents", opt_bool, @@ -209,15 +207,13 @@ smtp_transport_options_block smtp_transport_option_defaults = { NULL, /* tls_verify_certificates */ TRUE /* tls_tempfail_tryclear */ #endif - #ifdef EXPERIMENTAL_DOMAINKEYS + #if (defined EXPERIMENTAL_DOMAINKEYS) || (defined EXPERIMENTAL_DKIM) ,NULL, /* dk_canon */ NULL, /* dk_domain */ NULL, /* dk_headers */ NULL, /* dk_private_key */ NULL, /* dk_selector */ NULL /* dk_strict */ - #endif - #ifdef EXPERIMENTAL_DKIM ,NULL, /* dkim_canon */ NULL, /* dkim_domain */ NULL, /* dkim_private_key */ @@ -1595,40 +1591,24 @@ if (!ok) ok = TRUE; else DEBUG(D_transport|D_v) debug_printf(" SMTP>> writing message and terminating \".\"\n"); transport_count = 0; -#ifdef EXPERIMENTAL_DOMAINKEYS - if ( (ob->dk_private_key != NULL) && (ob->dk_selector != NULL) ) - ok = dk_transport_write_message(addrlist, inblock.sock, - topt_use_crlf | topt_end_dot | topt_escape_headers | - (tblock->body_only? topt_no_headers : 0) | - (tblock->headers_only? topt_no_body : 0) | - (tblock->return_path_add? topt_add_return_path : 0) | - (tblock->delivery_date_add? topt_add_delivery_date : 0) | - (tblock->envelope_to_add? topt_add_envelope_to : 0), - 0, /* No size limit */ - tblock->add_headers, tblock->remove_headers, - US".", US"..", /* Escaping strings */ - tblock->rewrite_rules, tblock->rewrite_existflags, - ob->dk_private_key, ob->dk_domain, ob->dk_selector, - ob->dk_canon, ob->dk_headers, ob->dk_strict); - else -#endif -#ifdef EXPERIMENTAL_DKIM - if ( (ob->dkim_private_key != NULL) && (ob->dkim_domain != NULL) && (ob->dkim_selector != NULL) ) - ok = dkim_transport_write_message(addrlist, inblock.sock, - topt_use_crlf | topt_end_dot | topt_escape_headers | - (tblock->body_only? topt_no_headers : 0) | - (tblock->headers_only? topt_no_body : 0) | - (tblock->return_path_add? topt_add_return_path : 0) | - (tblock->delivery_date_add? topt_add_delivery_date : 0) | - (tblock->envelope_to_add? topt_add_envelope_to : 0), - 0, /* No size limit */ - tblock->add_headers, tblock->remove_headers, - US".", US"..", /* Escaping strings */ - tblock->rewrite_rules, tblock->rewrite_existflags, - ob->dkim_private_key, ob->dkim_domain, ob->dkim_selector, - ob->dkim_canon, ob->dkim_strict, ob->dkim_sign_headers); - else -#endif +#if (defined EXPERIMENTAL_DOMAINKEYS) || (defined EXPERIMENTAL_DKIM) + ok = dkim_transport_write_message(addrlist, inblock.sock, + topt_use_crlf | topt_end_dot | topt_escape_headers | + (tblock->body_only? topt_no_headers : 0) | + (tblock->headers_only? topt_no_body : 0) | + (tblock->return_path_add? topt_add_return_path : 0) | + (tblock->delivery_date_add? topt_add_delivery_date : 0) | + (tblock->envelope_to_add? topt_add_envelope_to : 0), + 0, /* No size limit */ + tblock->add_headers, tblock->remove_headers, + US".", US"..", /* Escaping strings */ + tblock->rewrite_rules, tblock->rewrite_existflags, + ob->dkim_private_key, ob->dkim_domain, ob->dkim_selector, + ob->dkim_canon, ob->dkim_strict, ob->dkim_sign_headers, + ob->dk_private_key, ob->dk_domain, ob->dk_selector, + ob->dk_canon, ob->dk_headers, ob->dk_strict + ); +#else ok = transport_write_message(addrlist, inblock.sock, topt_use_crlf | topt_end_dot | topt_escape_headers | (tblock->body_only? topt_no_headers : 0) | @@ -1640,6 +1620,7 @@ if (!ok) ok = TRUE; else tblock->add_headers, tblock->remove_headers, US".", US"..", /* Escaping strings */ tblock->rewrite_rules, tblock->rewrite_existflags); +#endif /* transport_write_message() uses write() because it is called from other places to write to non-sockets. This means that under some OS (e.g. Solaris)