Cutthrough: avoid use of callout result cache
authorJeremy Harris <jgh146exb@wizmail.org>
Thu, 7 Jul 2016 22:20:04 +0000 (23:20 +0100)
committerJeremy Harris <jgh146exb@wizmail.org>
Fri, 8 Jul 2016 00:14:09 +0000 (01:14 +0100)
The connection always needs to be made, and no result
need be cached after verify either.

src/src/verify.c
test/scripts/5400-cutthrough/5401
test/stderr/0376
test/stderr/0398
test/stderr/0432
test/stderr/0462
test/stderr/0473
test/stderr/5403
test/stderr/5410
test/stderr/5420
test/stderr/5840

index 8a4867b..4762760 100644 (file)
@@ -155,10 +155,6 @@ do_callout(address_item *addr, host_item *host_list, transport_feedback *tf,
   int callout, int callout_overall, int callout_connect, int options,
   uschar *se_mailfrom, uschar *pm_mailfrom)
 {
-BOOL is_recipient = (options & vopt_is_recipient) != 0;
-BOOL callout_no_cache = (options & vopt_callout_no_cache) != 0;
-BOOL callout_random = (options & vopt_callout_random) != 0;
-
 int yield = OK;
 int old_domain_cache_result = ccache_accept;
 BOOL done = FALSE;
@@ -166,8 +162,8 @@ uschar *address_key;
 uschar *from_address;
 uschar *random_local_part = NULL;
 const uschar *save_deliver_domain = deliver_domain;
-uschar **failure_ptr = is_recipient?
-  &recipient_verify_failure : &sender_verify_failure;
+uschar **failure_ptr = options & vopt_is_recipient
+  &recipient_verify_failure : &sender_verify_failure;
 open_db dbblock;
 open_db *dbm_file = NULL;
 dbdata_callout_cache new_domain_record;
@@ -189,12 +185,13 @@ because that may influence the result of the callout. */
 address_key = addr->address;
 from_address = US"";
 
-if (is_recipient)
+if (options & vopt_is_recipient)
   {
   if (options & vopt_callout_recipsender)
     {
     address_key = string_sprintf("%s/<%s>", addr->address, sender_address);
     from_address = sender_address;
+    if (cutthrough.delivery) options |= vopt_callout_no_cache;
     }
   else if (options & vopt_callout_recippmaster)
     {
@@ -217,7 +214,7 @@ else
 /* Open the callout cache database, it it exists, for reading only at this
 stage, unless caching has been disabled. */
 
-if (callout_no_cache)
+if (options & vopt_callout_no_cache)
   {
   HDEBUG(D_verify) debug_printf("callout cache: disabled by no_cache\n");
   }
@@ -273,26 +270,26 @@ if (dbm_file != NULL)
     the data in the new record. If a random check is required but hasn't been
     done, skip the remaining cache processing. */
 
-    if (callout_random) switch(cache_record->random_result)
+    if (options & vopt_callout_random) switch(cache_record->random_result)
       {
       case ccache_accept:
-      HDEBUG(D_verify)
-        debug_printf("callout cache: domain accepts random addresses\n");
-      goto END_CALLOUT;     /* Default yield is OK */
+       HDEBUG(D_verify)
+         debug_printf("callout cache: domain accepts random addresses\n");
+       goto END_CALLOUT;     /* Default yield is OK */
 
       case ccache_reject:
-      HDEBUG(D_verify)
-        debug_printf("callout cache: domain rejects random addresses\n");
-      callout_random = FALSE;
-      new_domain_record.random_result = ccache_reject;
-      new_domain_record.random_stamp = cache_record->random_stamp;
-      break;
+       HDEBUG(D_verify)
+         debug_printf("callout cache: domain rejects random addresses\n");
+       options &= ~vopt_callout_random;
+       new_domain_record.random_result = ccache_reject;
+       new_domain_record.random_stamp = cache_record->random_stamp;
+       break;
 
       default:
-      HDEBUG(D_verify)
-        debug_printf("callout cache: need to check random address handling "
-          "(not cached or cache expired)\n");
-      goto END_CACHE;
+       HDEBUG(D_verify)
+         debug_printf("callout cache: need to check random address handling "
+           "(not cached or cache expired)\n");
+       goto END_CACHE;
       }
 
     /* If a postmaster check is requested, but there was a previous failure,
@@ -389,7 +386,7 @@ else
   with a random local part, ensure that such a local part is available. If not,
   log the fact, but carry on without randomming. */
 
-  if (callout_random && callout_random_local_part != NULL)
+  if (options & vopt_callout_random && callout_random_local_part != NULL)
     if (!(random_local_part = expand_string(callout_random_local_part)))
       log_write(0, LOG_MAIN|LOG_PANIC, "failed to expand "
         "callout_random_local_part: %s", expand_string_message);
@@ -1245,10 +1242,9 @@ can do it there for the non-rcpt-verify case.  For this we keep an addresscount.
             big_buffer, host->name, host->address,
             string_printing(responsebuffer));
 
-        addr->user_message = is_recipient?
-          string_sprintf("Callout verification failed:\n%s", responsebuffer)
-          :
-          string_sprintf("Called:   %s\nSent:     %s\nResponse: %s",
+        addr->user_message = options & vopt_is_recipient
+         ? string_sprintf("Callout verification failed:\n%s", responsebuffer)
+          : string_sprintf("Called:   %s\nSent:     %s\nResponse: %s",
             host->address, big_buffer, responsebuffer);
 
         /* Hard rejection ends the process */
@@ -1277,6 +1273,8 @@ can do it there for the non-rcpt-verify case.  For this we keep an addresscount.
        && !lmtp
        )
       {
+      HDEBUG(D_acl|D_v) debug_printf("holding verify callout open for cutthrough delivery\n");
+
       cutthrough.fd = outblock.sock;   /* We assume no buffer in use in the outblock */
       cutthrough.nrcpt = 1;
       cutthrough.interface = interface;
@@ -1322,7 +1320,8 @@ there was an error before or with MAIL FROM:, and errno was not zero,
 implying some kind of I/O error. We don't want to write the cache in that case.
 Otherwise the value is ccache_accept, ccache_reject, or ccache_reject_mfnull. */
 
-if (!callout_no_cache && new_domain_record.result != ccache_unknown)
+if (  !(options & vopt_callout_no_cache)
+   && new_domain_record.result != ccache_unknown)
   {
   if ((dbm_file = dbfn_open(US"callout", O_RDWR|O_CREAT, &dbblock, FALSE))
        == NULL)
@@ -1333,8 +1332,9 @@ if (!callout_no_cache && new_domain_record.result != ccache_unknown)
     {
     (void)dbfn_write(dbm_file, addr->domain, &new_domain_record,
       (int)sizeof(dbdata_callout_cache));
-    HDEBUG(D_verify) debug_printf("wrote callout cache domain record:\n"
+    HDEBUG(D_verify) debug_printf("wrote callout cache domain record for %s:\n"
       "  result=%d postmaster=%d random=%d\n",
+      addr->domain,
       new_domain_record.result,
       new_domain_record.postmaster_result,
       new_domain_record.random_result);
@@ -1346,7 +1346,8 @@ is disabled. */
 
 if (done)
   {
-  if (!callout_no_cache && new_address_record.result != ccache_unknown)
+  if (  !(options & vopt_callout_no_cache)
+     && new_address_record.result != ccache_unknown)
     {
     if (dbm_file == NULL)
       dbm_file = dbfn_open(US"callout", O_RDWR|O_CREAT, &dbblock, FALSE);
@@ -1358,8 +1359,9 @@ if (done)
       {
       (void)dbfn_write(dbm_file, address_key, &new_address_record,
         (int)sizeof(dbdata_callout_cache_address));
-      HDEBUG(D_verify) debug_printf("wrote %s callout cache address record\n",
-        (new_address_record.result == ccache_accept)? "positive" : "negative");
+      HDEBUG(D_verify) debug_printf("wrote %s callout cache address record for %s\n",
+        new_address_record.result == ccache_accept ? "positive" : "negative",
+       address_key);
       }
     }
   }    /* done */
@@ -1371,7 +1373,7 @@ it alone if supplying details. Otherwise, give a generic response. */
 else   /* !done */
   {
   uschar *dullmsg = string_sprintf("Could not complete %s verify callout",
-    is_recipient? "recipient" : "sender");
+    options & vopt_is_recipient ? "recipient" : "sender");
   yield = DEFER;
 
   if (host_list->next != NULL || addr->message == NULL) addr->message = dullmsg;
@@ -1381,12 +1383,11 @@ else   /* !done */
       "The mail server(s) for the domain may be temporarily unreachable, or\n"
       "they may be permanently unreachable from this server. In the latter case,\n%s",
       dullmsg, addr->address,
-      is_recipient?
-        "the address will never be accepted."
-        :
-        "you need to change the address or create an MX record for its domain\n"
-        "if it is supposed to be generally accessible from the Internet.\n"
-        "Talk to your mail administrator for details.");
+      options & vopt_is_recipient
+       ?  "the address will never be accepted."
+        : "you need to change the address or create an MX record for its domain\n"
+         "if it is supposed to be generally accessible from the Internet.\n"
+         "Talk to your mail administrator for details.");
 
   /* Force a specific error code */
 
@@ -1808,21 +1809,20 @@ verify_address(address_item *vaddr, FILE *f, int options, int callout,
 {
 BOOL allok = TRUE;
 BOOL full_info = (f == NULL)? FALSE : (debug_selector != 0);
-BOOL is_recipient = (options & vopt_is_recipient) != 0;
 BOOL expn         = (options & vopt_expn) != 0;
 BOOL success_on_redirect = (options & vopt_success_on_redirect) != 0;
 int i;
 int yield = OK;
 int verify_type = expn? v_expn :
      address_test_mode? v_none :
-          is_recipient? v_recipient : v_sender;
+          options & vopt_is_recipient? v_recipient : v_sender;
 address_item *addr_list;
 address_item *addr_new = NULL;
 address_item *addr_remote = NULL;
 address_item *addr_local = NULL;
 address_item *addr_succeed = NULL;
-uschar **failure_ptr = is_recipient?
-  &recipient_verify_failure : &sender_verify_failure;
+uschar **failure_ptr = options & vopt_is_recipient
+  &recipient_verify_failure : &sender_verify_failure;
 uschar *ko_prefix, *cr;
 uschar *address = vaddr->address;
 uschar *save_sender;
@@ -1855,7 +1855,7 @@ if (parse_find_at(address) == NULL)
     *failure_ptr = US"qualify";
     return FAIL;
     }
-  address = rewrite_address_qualify(address, is_recipient);
+  address = rewrite_address_qualify(address, options & vopt_is_recipient);
   }
 
 DEBUG(D_verify)
@@ -1870,7 +1870,7 @@ may have been set by domains and local part tests during an ACL. */
 if (global_rewrite_rules != NULL)
   {
   uschar *old = address;
-  address = rewrite_address(address, is_recipient, FALSE,
+  address = rewrite_address(address, options & vopt_is_recipient, FALSE,
     global_rewrite_rules, rewrite_existflags);
   if (address != old)
     {
@@ -1905,7 +1905,7 @@ save_sender = sender_address;
 
 /* Observability variable for router/transport use */
 
-verify_mode = is_recipient ? US"R" : US"S";
+verify_mode = options & vopt_is_recipient ? US"R" : US"S";
 
 /* Update the address structure with the possibly qualified and rewritten
 address. Set it up as the starting address on the chain of new addresses. */
@@ -1982,7 +1982,7 @@ while (addr_new)
   if (routed) *routed = FALSE;
   if ((rc = deliver_split_address(addr)) == OK)
     {
-    if (!is_recipient) sender_address = null_sender;
+    if (!(options & vopt_is_recipient)) sender_address = null_sender;
     rc = route_address(addr, &addr_local, &addr_remote, &addr_new,
       &addr_succeed, verify_type);
     sender_address = save_sender;     /* Put back the real sender */
index 726d1f2..b7837b3 100644 (file)
@@ -51,8 +51,6 @@ QUIT
 ****
 #
 #
-# lose the cached callout fail record
-sudo rm DIR/spool/db/callout
 #
 # cutthrough for 2 recipients in one domain
 # first one denied
index 310e1a1..664e248 100644 (file)
@@ -21,9 +21,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<ok@localhost>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for localhost:
   result=1 postmaster=0 random=0
-wrote positive callout cache address record
+wrote positive callout cache address record for ok@localhost
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -90,9 +90,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<bad@localhost>
   SMTP<< 550 REJECTED
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for localhost:
   result=1 postmaster=0 random=0
-wrote negative callout cache address record
+wrote negative callout cache address record for bad@localhost
 LOG: MAIN REJECT
   H=[V4NET.0.0.1] U=root sender verify fail for <bad@localhost>: response to "RCPT TO:<bad@localhost>" from 127.0.0.1 [127.0.0.1] was: 550 REJECTED
 LOG: MAIN REJECT
@@ -142,7 +142,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> MAIL FROM:<>
   SMTP<< 550 REJECT MAIL FROM
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for localhost:
   result=3 postmaster=0 random=0
 LOG: MAIN REJECT
   H=[V4NET.0.0.1] U=root sender verify fail for <ok@localhost>: response to "MAIL FROM:<>" from 127.0.0.1 [127.0.0.1] was: 550 REJECT MAIL FROM
@@ -201,9 +201,9 @@ Cutthrough cancelled by presence of postmaster verify
   SMTP>> RCPT TO:<postmaster@otherhost>
   SMTP<< 550 NOT OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost:
   result=1 postmaster=2 random=0
-wrote positive callout cache address record
+wrote positive callout cache address record for ok@otherhost
 LOG: MAIN REJECT
   H=[V4NET.0.0.2] U=root sender verify fail for <ok@otherhost>: response to "RCPT TO:<postmaster@otherhost>" from 127.0.0.1 [127.0.0.1] was: 550 NOT OK
 LOG: MAIN REJECT
@@ -261,9 +261,9 @@ Cutthrough cancelled by presence of postmaster verify
   SMTP>> RCPT TO:<postmaster@otherhost2>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost2:
   result=1 postmaster=1 random=0
-wrote positive callout cache address record
+wrote positive callout cache address record for ok@otherhost2
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -308,7 +308,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost3>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost3:
   result=1 postmaster=0 random=1
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
@@ -352,7 +352,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost4>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost4:
   result=1 postmaster=0 random=1
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
@@ -409,9 +409,9 @@ Cutthrough cancelled by presence of postmaster verify
   SMTP>> RCPT TO:<postmaster@otherhost41>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost41:
   result=1 postmaster=1 random=2
-wrote positive callout cache address record
+wrote positive callout cache address record for ok@otherhost41
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -464,9 +464,9 @@ Cutthrough cancelled by presence of postmaster verify
   SMTP>> RCPT TO:<postmaster@otherhost21>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost21:
   result=1 postmaster=1 random=0
-wrote positive callout cache address record
+wrote positive callout cache address record for ok@otherhost21
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -494,9 +494,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<ok2@otherhost21>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost21:
   result=1 postmaster=1 random=0
-wrote positive callout cache address record
+wrote positive callout cache address record for ok2@otherhost21
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -529,9 +529,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<ok@otherhost31>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost31:
   result=1 postmaster=0 random=2
-wrote positive callout cache address record
+wrote positive callout cache address record for ok@otherhost31
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -559,9 +559,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<okok@otherhost31>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost31:
   result=1 postmaster=0 random=2
-wrote positive callout cache address record
+wrote positive callout cache address record for okok@otherhost31
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -594,9 +594,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<okokok@otherhost31>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost31:
   result=1 postmaster=0 random=2
-wrote positive callout cache address record
+wrote positive callout cache address record for okokok@otherhost31
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -622,7 +622,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP<< 250 OK
   SMTP>> RCPT TO:<myhost.test.ex-dddddddd-testing@otherhost51>
 SMTP timeout
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost51:
   result=1 postmaster=0 random=0
 LOG: MAIN REJECT
   H=[V4NET.0.0.5] U=root sender verify defer for <okok@otherhost51>: Could not complete sender verify callout
@@ -661,9 +661,9 @@ Cutthrough cancelled by presence of postmaster verify
   SMTP>> RCPT TO:<postmaster@otherhost52>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost52:
   result=1 postmaster=1 random=0
-wrote positive callout cache address record
+wrote positive callout cache address record for okokok@otherhost52
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -691,9 +691,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<abcd@x.y.z>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for x.y.z:
   result=1 postmaster=0 random=0
-wrote positive callout cache address record
+wrote positive callout cache address record for abcd@x.y.z/<somesender@a.domain>
 LOG: MAIN
   <= ok7@otherhost53 H=[V4NET.0.0.7] U=root P=smtp S=sss
 LOG: smtp_connection MAIN
@@ -722,7 +722,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP<< 250 OK
   SMTP>> RCPT TO:<abcd@x.y.z>
 SMTP timeout
-wrote callout cache domain record:
+wrote callout cache domain record for x.y.z:
   result=1 postmaster=0 random=0
 LOG: MAIN
   <= ok7@otherhost53 H=[V4NET.0.0.8] U=root P=smtp S=sss
@@ -761,9 +761,9 @@ Cutthrough cancelled by presence of postmaster verify
   SMTP>> RCPT TO:<postmaster>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for otherhost9:
   result=1 postmaster=1 random=0
-wrote positive callout cache address record
+wrote positive callout cache address record for ok@otherhost9
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
@@ -803,9 +803,9 @@ Cutthrough cancelled by presence of postmaster verify
   SMTP>> RCPT TO:<postmaster@test.ex>
   SMTP<< 250 OK
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for test.ex:
   result=1 postmaster=1 random=2
-wrote positive callout cache address record
+wrote positive callout cache address record for z@test.ex/<postmaster@myhost.test.ex>
 LOG: smtp_connection MAIN
   SMTP connection from root closed by QUIT
 >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>>
index 17d5806..0a4d1fe 100644 (file)
@@ -143,10 +143,10 @@ EXIM_DBOPEN(TESTSUITE/spool/db/callout)
 returned from EXIM_DBOPEN
 opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR|O_CREAT
 dbfn_write: key=remote
-wrote callout cache domain record:
+wrote callout cache domain record for remote:
   result=1 postmaster=0 random=0
 dbfn_write: key=qq@remote
-wrote negative callout cache address record
+wrote negative callout cache address record for qq@remote
 ----------- end verify ------------
 l_message: $acl_verify_message
 warn: condition test succeeded in ACL "rcpt"
index 6a7aebe..95a24a9 100644 (file)
@@ -104,10 +104,10 @@ EXIM_DBOPEN(TESTSUITE/spool/db/callout)
 returned from EXIM_DBOPEN
 opened hints database TESTSUITE/spool/db/callout: flags=O_RDWR|O_CREAT
 dbfn_write: key=y
-wrote callout cache domain record:
+wrote callout cache domain record for y:
   result=1 postmaster=0 random=0
 dbfn_write: key=x@y
-wrote positive callout cache address record
+wrote positive callout cache address record for x@y
 ----------- end verify ------------
 sender x@y verified ok
 accept: condition test succeeded in ACL "mail"
@@ -254,9 +254,9 @@ MUNGED: ::1 will be omitted in what follows
 >>>   SMTP>> RCPT TO:<a@b>
 >>>   SMTP<< 250 OK
 >>>   SMTP>> QUIT
->>> wrote callout cache domain record:
+>>> wrote callout cache domain record for b:
 >>>   result=1 postmaster=0 random=0
->>> wrote positive callout cache address record
+>>> wrote positive callout cache address record for a@b
 >>> ----------- end verify ------------
 >>> accept: condition test succeeded in ACL "mail"
 >>> end of ACL "mail": ACCEPT
index 0d6d719..f8cb9b7 100644 (file)
@@ -28,9 +28,9 @@ Cutthrough cancelled by presence of postmaster verify
   SMTP>> RCPT TO:<postmaster@localhost>
   SMTP<< 550 NO
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for localhost:
   result=1 postmaster=2 random=0
-wrote positive callout cache address record
+wrote positive callout cache address record for Ok@localhost
 LOG: MAIN REJECT
   H=[V4NET.0.0.1] U=root sender verify fail for <Ok@localhost>: response to "RCPT TO:<postmaster@localhost>" from 127.0.0.1 [127.0.0.1] was: 550 NO
 created log directory TESTSUITE/spool/log
@@ -70,9 +70,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<NOTok@elsewhere>
   SMTP<< 550 NO
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for elsewhere:
   result=1 postmaster=0 random=0
-wrote negative callout cache address record
+wrote negative callout cache address record for NOTok@elsewhere
 LOG: MAIN REJECT
   H=[V4NET.0.0.2] U=root sender verify fail for <NOTok@elsewhere>: response to "RCPT TO:<NOTok@elsewhere>" from 127.0.0.1 [127.0.0.1] was: 550 NO
 LOG: MAIN REJECT
@@ -103,9 +103,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP>> RCPT TO:<NOTok2@elsewhere>
   SMTP<< 550 NO
   SMTP>> QUIT
-wrote callout cache domain record:
+wrote callout cache domain record for elsewhere:
   result=1 postmaster=0 random=0
-wrote negative callout cache address record
+wrote negative callout cache address record for NOTok2@elsewhere
 LOG: MAIN REJECT
   H=[V4NET.0.0.2] U=root F=<NOTok2@elsewhere> rejected RCPT <nocheckpm@test.ex>: Sender verify failed
 LOG: smtp_connection MAIN
index 257af6c..3fd0cbb 100644 (file)
@@ -20,7 +20,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
   SMTP<< 250 OK
   SMTP>> RCPT TO:<r11@two.test.ex>
 SMTP timeout
-wrote callout cache domain record:
+wrote callout cache domain record for two.test.ex:
   result=1 postmaster=0 random=0
 LOG: MAIN REJECT
   U=CALLER F=<x11@two.test.ex> temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout
index 49d3574..b088f32 100644 (file)
@@ -65,8 +65,7 @@ MUNGED: ::1 will be omitted in what follows
 >>>   name=127.0.0.1 address=127.0.0.1
 >>> routed by all router
 >>> Attempting full verification using callout
->>> callout cache: no domain record found for domain.com
->>> callout cache: no address record found for verify@domain.com/<CALLER@myhost.test.ex>
+>>> callout cache: disabled by no_cache
 >>> interface=ip4.ip4.ip4.ip4 port=1224
 >>> Connecting to 127.0.0.1 [127.0.0.1]:1224 from ip4.ip4.ip4.ip4 ... connected
 >>>   SMTP<< 220 server ready
@@ -78,9 +77,7 @@ MUNGED: ::1 will be omitted in what follows
 >>>   SMTP<< 250 OK
 >>>   SMTP>> RCPT TO:<verify@domain.com>
 >>>   SMTP<< 250 OK
->>> wrote callout cache domain record:
->>>   result=1 postmaster=0 random=0
->>> wrote positive callout cache address record
+>>> holding verify callout open for cutthrough delivery
 >>> ----------- end verify ------------
 >>> warn: condition test succeeded in ACL "ar"
 >>> processing "accept"
index 8762f82..1ed0824 100644 (file)
@@ -116,6 +116,7 @@ considering: :}}
   SMTP<< 250 OK
   SMTP>> RCPT TO:<userx@domain.com>
   SMTP<< 250 Accepted
+holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 processing "accept"
 accept: condition test succeeded in inline ACL
@@ -329,6 +330,7 @@ considering: *}{:}}
   SMTP<< 250 OK
   SMTP>> RCPT TO:<usery@domain.com>
   SMTP<< 250 Accepted
+holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 processing "accept"
 accept: condition test succeeded in inline ACL
@@ -542,6 +544,7 @@ considering: *}{:}}
   SMTP<< 250 OK
   SMTP>> RCPT TO:<usery@domain.com>
   SMTP<< 250 Accepted
+holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 processing "accept"
 accept: condition test succeeded in inline ACL
index f289d1a..05135dd 100644 (file)
@@ -115,6 +115,7 @@ considering: :}}
   SMTP<< 250 OK
   SMTP>> RCPT TO:<userx@domain.com>
   SMTP<< 250 Accepted
+holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 processing "accept"
 accept: condition test succeeded in inline ACL
@@ -328,6 +329,7 @@ considering: *}{:}}
   SMTP<< 250 OK
   SMTP>> RCPT TO:<usery@domain.com>
   SMTP<< 250 Accepted
+holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 processing "accept"
 accept: condition test succeeded in inline ACL
@@ -541,6 +543,7 @@ considering: *}{:}}
   SMTP<< 250 OK
   SMTP>> RCPT TO:<usery@domain.com>
   SMTP<< 250 Accepted
+holding verify callout open for cutthrough delivery
 ----------- end cutthrough setup ------------
 processing "accept"
 accept: condition test succeeded in inline ACL
index 91e80e8..250e606 100644 (file)
@@ -51,9 +51,9 @@ MUNGED: ::1 will be omitted in what follows
 >>>   SMTP>> RCPT TO:<CALLER@dane256ee.test.ex>
 >>>   SMTP<< 250 Accepted
 >>>   SMTP>> QUIT
->>> wrote callout cache domain record:
+>>> wrote callout cache domain record for dane256ee.test.ex:
 >>>   result=1 postmaster=0 random=0
->>> wrote positive callout cache address record
+>>> wrote positive callout cache address record for CALLER@dane256ee.test.ex
 >>> ----------- end verify ------------
 >>> accept: condition test succeeded in inline ACL
 >>> end of inline ACL: ACCEPT