A :defer: message was being suppressed unless smtp_error_details was
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Thu, 1 Mar 2007 11:17:00 +0000 (11:17 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Thu, 1 Mar 2007 11:17:00 +0000 (11:17 +0000)
set, unlike :fail:. This is wrong, so has been fixed.

doc/doc-txt/ChangeLog
src/src/acl.c
src/src/verify.c
test/stdout/0365

index 3202cc9..7cc55f8 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.485 2007/02/26 14:07:04 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.486 2007/03/01 11:17:00 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -133,6 +133,10 @@ PH/29 SMTP synchronization checks are implemented when a command is read -
 
 PH/30 MH's patch to allow iscntrl() characters to be list separators.
 
+PH/31 Unlike :fail:, a custom message specified with :defer: was not being
+      returned in the SMTP response when smtp_return_error_details was false.
+      This has been fixed.
+
 
 Exim version 4.66
 -----------------
index afbb93e..41058af 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/acl.c,v 1.74 2007/02/14 15:33:40 ph10 Exp $ */
+/* $Cambridge: exim/src/src/acl.c,v 1.75 2007/03/01 11:17:00 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -1976,10 +1976,13 @@ else
     callout_overall, callout_connect, se_mailfrom, pm_mailfrom, NULL);
   HDEBUG(D_acl) debug_printf("----------- end verify ------------\n");
 
+  *basic_errno = addr2.basic_errno;
   *log_msgptr = addr2.message;
   *user_msgptr = (addr2.user_message != NULL)?
     addr2.user_message : addr2.message;
-  *basic_errno = addr2.basic_errno;
+
+  /* Allow details for temporary error if the address is so flagged. */
+  if (testflag((&addr2), af_pass_message)) acl_temp_details = TRUE;
 
   /* Make $address_data visible */
   deliver_address_data = addr2.p.address_data;
index d71f7e7..6667906 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/verify.c,v 1.48 2007/02/06 12:19:27 ph10 Exp $ */
+/* $Cambridge: exim/src/src/verify.c,v 1.49 2007/03/01 11:17:00 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -855,6 +855,7 @@ if (addr != vaddr)
   vaddr->basic_errno = addr->basic_errno;
   vaddr->more_errno = addr->more_errno;
   vaddr->p.address_data = addr->p.address_data;
+  copyflag(vaddr, addr, af_pass_message);
   }
 return yield;
 }
@@ -1279,7 +1280,6 @@ while (addr_new != NULL)
         }
       fprintf(f, "%s\n", cr);
       }
-
     if (!full_info) return copy_error(vaddr, addr, DEFER);
       else if (yield == OK) yield = DEFER;
     }
index 9df565e..0d6e079 100644 (file)
@@ -25,7 +25,7 @@
 550 failure message\r
 250 Reset OK\r
 250 OK\r
-451 Temporary local problem - please try later\r
+451 defer message\r
 250 Reset OK\r
 221 the.local.host.name closing connection\r
 220 the.local.host.name ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r