From 8b9476ba56f0fd05ac8303ad86a41e0242bc876d Mon Sep 17 00:00:00 2001 From: Jeremy Harris Date: Thu, 7 Jul 2016 23:20:04 +0100 Subject: [PATCH] Cutthrough: avoid use of callout result cache The connection always needs to be made, and no result need be cached after verify either. --- src/src/verify.c | 94 +++++++++++++++---------------- test/scripts/5400-cutthrough/5401 | 2 - test/stderr/0376 | 66 +++++++++++----------- test/stderr/0398 | 4 +- test/stderr/0432 | 8 +-- test/stderr/0462 | 12 ++-- test/stderr/0473 | 2 +- test/stderr/5403 | 7 +-- test/stderr/5410 | 3 + test/stderr/5420 | 3 + test/stderr/5840 | 4 +- 11 files changed, 103 insertions(+), 102 deletions(-) diff --git a/src/src/verify.c b/src/src/verify.c index 8a4867b94..476276037 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -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 */ diff --git a/test/scripts/5400-cutthrough/5401 b/test/scripts/5400-cutthrough/5401 index 726d1f29e..b7837b342 100644 --- a/test/scripts/5400-cutthrough/5401 +++ b/test/scripts/5400-cutthrough/5401 @@ -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 diff --git a/test/stderr/0376 b/test/stderr/0376 index 310e1a101..664e248e2 100644 --- a/test/stderr/0376 +++ b/test/stderr/0376 @@ -21,9 +21,9 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected SMTP>> RCPT TO: 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: 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 : response to "RCPT TO:" 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 : 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: 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 : response to "RCPT TO:" 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: 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: 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: 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: 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: 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: 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: 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: 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: 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: 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 : Could not complete sender verify callout @@ -661,9 +661,9 @@ Cutthrough cancelled by presence of postmaster verify SMTP>> RCPT TO: 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: 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/ 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: 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: 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: 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/ LOG: smtp_connection MAIN SMTP connection from root closed by QUIT >>>>>>>>>>>>>>>> Exim pid=pppp terminating with rc=0 >>>>>>>>>>>>>>>> diff --git a/test/stderr/0398 b/test/stderr/0398 index 17d580669..0a4d1fe23 100644 --- a/test/stderr/0398 +++ b/test/stderr/0398 @@ -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" diff --git a/test/stderr/0432 b/test/stderr/0432 index 6a7aebe15..95a24a9eb 100644 --- a/test/stderr/0432 +++ b/test/stderr/0432 @@ -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: >>> 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 diff --git a/test/stderr/0462 b/test/stderr/0462 index 0d6d719cf..f8cb9b7c6 100644 --- a/test/stderr/0462 +++ b/test/stderr/0462 @@ -28,9 +28,9 @@ Cutthrough cancelled by presence of postmaster verify SMTP>> RCPT TO: 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 : response to "RCPT TO:" 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: 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 : response to "RCPT TO:" 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: 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= rejected RCPT : Sender verify failed LOG: smtp_connection MAIN diff --git a/test/stderr/0473 b/test/stderr/0473 index 257af6c38..3fd0cbb51 100644 --- a/test/stderr/0473 +++ b/test/stderr/0473 @@ -20,7 +20,7 @@ Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected SMTP<< 250 OK SMTP>> RCPT TO: 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= temporarily rejected RCPT r11@two.test.ex: Could not complete recipient verify callout diff --git a/test/stderr/5403 b/test/stderr/5403 index 49d3574fe..b088f32f1 100644 --- a/test/stderr/5403 +++ b/test/stderr/5403 @@ -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/ +>>> 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: >>> 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" diff --git a/test/stderr/5410 b/test/stderr/5410 index 8762f82a1..1ed0824e8 100644 --- a/test/stderr/5410 +++ b/test/stderr/5410 @@ -116,6 +116,7 @@ considering: :}} SMTP<< 250 OK SMTP>> RCPT TO: 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: 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: SMTP<< 250 Accepted +holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ processing "accept" accept: condition test succeeded in inline ACL diff --git a/test/stderr/5420 b/test/stderr/5420 index f289d1a4c..05135dd5a 100644 --- a/test/stderr/5420 +++ b/test/stderr/5420 @@ -115,6 +115,7 @@ considering: :}} SMTP<< 250 OK SMTP>> RCPT TO: 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: 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: SMTP<< 250 Accepted +holding verify callout open for cutthrough delivery ----------- end cutthrough setup ------------ processing "accept" accept: condition test succeeded in inline ACL diff --git a/test/stderr/5840 b/test/stderr/5840 index 91e80e8ea..250e606ca 100644 --- a/test/stderr/5840 +++ b/test/stderr/5840 @@ -51,9 +51,9 @@ MUNGED: ::1 will be omitted in what follows >>> SMTP>> RCPT TO: >>> 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 -- 2.30.2