X-Git-Url: https://vcs.fsf.org/?a=blobdiff_plain;f=src%2Fsrc%2Fspool_out.c;h=52f079c4ea1f6618c93b3806589ccef11fcb6c6d;hb=8ac90765750f87c573300b9e953af3d8090cab8b;hp=652506fb359c9d7b84df1b1f2ace9b03d0ab64fb;hpb=d5c0d8c9374623620844d539d4810da63e9abca1;p=exim.git diff --git a/src/src/spool_out.c b/src/src/spool_out.c index 652506fb3..52f079c4e 100644 --- a/src/src/spool_out.c +++ b/src/src/spool_out.c @@ -2,7 +2,7 @@ * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2016 */ +/* Copyright (c) University of Cambridge 1995 - 2018 */ /* See the file NOTICE for conditions of use and distribution. */ /* Functions for writing spool files, and moving them about. */ @@ -154,26 +154,28 @@ fprintf(f, "%s-H\n", message_id); fprintf(f, "%.63s %ld %ld\n", originator_login, (long int)originator_uid, (long int)originator_gid); fprintf(f, "<%s>\n", sender_address); -fprintf(f, "%d %d\n", received_time, warning_count); +fprintf(f, "%d %d\n", (int)received_time.tv_sec, warning_count); + +fprintf(f, "-received_time_usec .%06d\n", (int)received_time.tv_usec); /* If there is information about a sending host, remember it. The HELO data can be set for local SMTP as well as remote. */ -if (sender_helo_name != NULL) +if (sender_helo_name) fprintf(f, "-helo_name %s\n", sender_helo_name); -if (sender_host_address != NULL) +if (sender_host_address) { fprintf(f, "-host_address %s.%d\n", sender_host_address, sender_host_port); - if (sender_host_name != NULL) + if (sender_host_name) fprintf(f, "-host_name %s\n", sender_host_name); - if (sender_host_authenticated != NULL) + if (sender_host_authenticated) fprintf(f, "-host_auth %s\n", sender_host_authenticated); } /* Also about the interface a message came in on */ -if (interface_address != NULL) +if (interface_address) fprintf(f, "-interface_address %s.%d\n", interface_address, interface_port); if (smtp_active_hostname != primary_hostname) @@ -183,11 +185,11 @@ if (smtp_active_hostname != primary_hostname) likely to be the same as originator_login, but will be different if the originator was root, forcing a different ident. */ -if (sender_ident != NULL) fprintf(f, "-ident %s\n", sender_ident); +if (sender_ident) fprintf(f, "-ident %s\n", sender_ident); /* Ditto for the received protocol */ -if (received_protocol != NULL) +if (received_protocol) fprintf(f, "-received_protocol %s\n", received_protocol); /* Preserve any ACL variables that are set. */ @@ -197,14 +199,17 @@ tree_walk(acl_var_m, &acl_var_write, f); /* Now any other data that needs to be remembered. */ -fprintf(f, "-body_linecount %d\n", body_linecount); +if (spool_file_wireformat) + fprintf(f, "-spool_file_wireformat\n"); +else + fprintf(f, "-body_linecount %d\n", body_linecount); fprintf(f, "-max_received_linelength %d\n", max_received_linelength); if (body_zerocount > 0) fprintf(f, "-body_zerocount %d\n", body_zerocount); -if (authenticated_id != NULL) +if (authenticated_id) fprintf(f, "-auth_id %s\n", authenticated_id); -if (authenticated_sender != NULL) +if (authenticated_sender) fprintf(f, "-auth_sender %s\n", authenticated_sender); if (allow_unqualified_recipient) fprintf(f, "-allow_unqualified_recipient\n"); @@ -216,7 +221,9 @@ if (host_lookup_deferred) fprintf(f, "-host_lookup_deferred\n"); if (host_lookup_failed) fprintf(f, "-host_lookup_failed\n"); if (sender_local) fprintf(f, "-local\n"); if (local_error_message) fprintf(f, "-localerror\n"); -if (local_scan_data != NULL) fprintf(f, "-local_scan %s\n", local_scan_data); +#ifdef HAVE_LOCAL_SCAN +if (local_scan_data) fprintf(f, "-local_scan %s\n", local_scan_data); +#endif #ifdef WITH_CONTENT_SCAN if (spam_bar) fprintf(f,"-spam_bar %s\n", spam_bar); if (spam_score) fprintf(f,"-spam_score %s\n", spam_score); @@ -226,7 +233,7 @@ if (deliver_manual_thaw) fprintf(f, "-manual_thaw\n"); if (sender_set_untrusted) fprintf(f, "-sender_set_untrusted\n"); #ifdef EXPERIMENTAL_BRIGHTMAIL -if (bmi_verdicts != NULL) fprintf(f, "-bmi_verdicts %s\n", bmi_verdicts); +if (bmi_verdicts) fprintf(f, "-bmi_verdicts %s\n", bmi_verdicts); #endif #ifdef SUPPORT_TLS @@ -245,6 +252,10 @@ if (tls_in.ourcert) fprintf(f, "-tls_ourcert %s\n", CS big_buffer); } if (tls_in.ocsp) fprintf(f, "-tls_ocsp %d\n", tls_in.ocsp); + +# ifdef EXPERIMENTAL_REQUIRETLS +if (tls_requiretls) fprintf(f, "-tls_requiretls 0x%x\n", tls_requiretls); +# endif #endif #ifdef SUPPORT_I18N @@ -258,9 +269,9 @@ if (message_smtputf8) /* Write the dsn flags to the spool header file */ DEBUG(D_deliver) debug_printf("DSN: Write SPOOL :-dsn_envid %s\n", dsn_envid); -if (dsn_envid != NULL) fprintf(f, "-dsn_envid %s\n", dsn_envid); +if (dsn_envid) fprintf(f, "-dsn_envid %s\n", dsn_envid); DEBUG(D_deliver) debug_printf("DSN: Write SPOOL :-dsn_ret %d\n", dsn_ret); -if (dsn_ret != 0) fprintf(f, "-dsn_ret %d\n", dsn_ret); +if (dsn_ret) fprintf(f, "-dsn_ret %d\n", dsn_ret); /* To complete the envelope, write out the tree of non-recipients, followed by the list of recipients. These won't be disjoint the first time, when no @@ -313,7 +324,7 @@ various other headers, or an asterisk for old headers that have been rewritten. These are saved as a record for debugging. Don't included them in the message's size. */ -for (h = header_list; h != NULL; h = h->next) +for (h = header_list; h; h = h->next) { fprintf(f, "%03d%c %s", h->slen, h->type, h->text); size_correction += 5;