X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/8523533c08c018ac4b750b0e0fab6cfe611e8a49..4362ff0d4b2a9feee34a595feee087d47faeb447:/src/src/spool_out.c diff --git a/src/src/spool_out.c b/src/src/spool_out.c index 577d0f68c..0a17b7a13 100644 --- a/src/src/spool_out.c +++ b/src/src/spool_out.c @@ -1,10 +1,10 @@ -/* $Cambridge: exim/src/src/spool_out.c,v 1.2 2004/12/16 15:11:47 tom Exp $ */ +/* $Cambridge: exim/src/src/spool_out.c,v 1.11 2006/09/19 11:28:45 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * *************************************************/ -/* Copyright (c) University of Cambridge 1995 - 2004 */ +/* Copyright (c) University of Cambridge 1995 - 2006 */ /* See the file NOTICE for conditions of use and distribution. */ /* Functions for writing spool files, and moving them about. */ @@ -48,7 +48,7 @@ uschar *msg = (where == SW_RECEIVING)? strerror(errno)); if (temp_name != NULL) Uunlink(temp_name); -if (f != NULL) fclose(f); +if (f != NULL) (void)fclose(f); if (errmsg == NULL) log_write(0, LOG_MAIN|LOG_PANIC_DIE, "%s", msg); @@ -96,8 +96,8 @@ automatically. */ if (fd >= 0) { - fchown(fd, exim_uid, exim_gid); - fchmod(fd, SPOOL_MODE); + (void)fchown(fd, exim_uid, exim_gid); + (void)fchmod(fd, SPOOL_MODE); } return fd; @@ -176,6 +176,9 @@ if (sender_host_address != NULL) if (interface_address != NULL) fprintf(f, "-interface_address %s.%d\n", interface_address, interface_port); +if (smtp_active_hostname != primary_hostname) + fprintf(f, "-active_hostname %s\n", smtp_active_hostname); + /* Likewise for any ident information; for local messages this is likely to be the same as originator_login, but will be different if the originator was root, forcing a different ident. */ @@ -187,14 +190,10 @@ if (sender_ident != NULL) fprintf(f, "-ident %s\n", sender_ident); if (received_protocol != NULL) fprintf(f, "-received_protocol %s\n", received_protocol); -/* Preserve any ACL variables that are set. Because the values may contain -newlines, we use an explicit length. */ +/* Preserve any ACL variables that are set. */ -for (i = 0; i < ACL_C_MAX + ACL_M_MAX; i++) - { - if (acl_var[i] != NULL) - fprintf(f, "-acl %d %d\n%s\n", i, Ustrlen(acl_var[i]), acl_var[i]); - } +tree_walk(acl_var_c, &acl_var_write, f); +tree_walk(acl_var_m, &acl_var_write, f); /* Now any other data that needs to be remembered. */ @@ -212,6 +211,7 @@ if (allow_unqualified_sender) fprintf(f, "-allow_unqualified_sender\n"); if (deliver_firsttime) fprintf(f, "-deliver_firsttime\n"); if (deliver_freeze) fprintf(f, "-frozen %d\n", deliver_frozen_at); if (dont_deliver) fprintf(f, "-N\n"); +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");