exipick 20060721.2
[users/jgh/exim.git] / src / src / spool_out.c
index a157e84ba789c4bfe363e4de073ba81fbb8c5fb2..bbfd785d255c7c85e2d058449021f8b95dab7b4f 100644 (file)
@@ -1,10 +1,10 @@
-/* $Cambridge: exim/src/src/spool_out.c,v 1.4 2005/01/04 10:00:42 ph10 Exp $ */
+/* $Cambridge: exim/src/src/spool_out.c,v 1.10 2006/02/07 11:19:00 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 *************************************************/
 
-/* Copyright (c) University of Cambridge 1995 - 2005 */
+/* 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;
@@ -175,9 +175,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); 
+  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
@@ -193,10 +193,17 @@ if (received_protocol != NULL)
 /* Preserve any ACL variables that are set. Because the values may contain
 newlines, we use an explicit length. */
 
-for (i = 0; i < ACL_C_MAX + ACL_M_MAX; i++)
+for (i = 0; i < ACL_CVARS; i++)
   {
   if (acl_var[i] != NULL)
-    fprintf(f, "-acl %d %d\n%s\n", i, Ustrlen(acl_var[i]), acl_var[i]);
+    fprintf(f, "-aclc %d %d\n%s\n", i, Ustrlen(acl_var[i]), acl_var[i]);
+  }
+
+for (i = 0; i < ACL_MVARS; i++)
+  {
+  int j = i + ACL_CVARS;
+  if (acl_var[j] != NULL)
+    fprintf(f, "-aclm %d %d\n%s\n", i, Ustrlen(acl_var[j]), acl_var[j]);
   }
 
 /* Now any other data that needs to be remembered. */
@@ -215,6 +222,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");