X-Git-Url: https://git.exim.org/exim.git/blobdiff_plain/0e66b3b655cefaf20e3ce7347b45e158c3427831..aec45841f9139404fd61122e3db1401b13ebb0a8:/src/src/verify.c diff --git a/src/src/verify.c b/src/src/verify.c index c25e6e257..f8e176b27 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -468,6 +468,7 @@ else deliver_host_address = host->address; deliver_host_port = host->port; deliver_domain = addr->domain; + transport_name = addr->transport->name; if (!smtp_get_interface(tf->interface, host_af, addr, NULL, &interface, US"callout") || @@ -538,8 +539,8 @@ else inblock.sock = outblock.sock = smtp_connect(host, host_af, port, interface, callout_connect, TRUE, NULL -#ifdef EXPERIMENTAL_TPDA - /*XXX tpda action? NULL for now. */ +#ifdef EXPERIMENTAL_EVENT + /*XXX event action? NULL for now. */ , NULL #endif ); @@ -548,6 +549,7 @@ else { addr->message = string_sprintf("could not connect to %s [%s]: %s", host->name, host->address, strerror(errno)); + transport_name = NULL; deliver_host = deliver_host_address = NULL; deliver_domain = save_deliver_domain; continue; @@ -581,8 +583,8 @@ else if (!(done= smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer), '2', callout))) goto RESPONSE_FAILED; -#ifdef EXPERIMENTAL_TPDA - if (tpda_raise_event(addr->transport->tpda_event_action, +#ifdef EXPERIMENTAL_EVENT + if (event_raise(addr->transport->event_action, US"smtp:connect", responsebuffer) == DEFER) { /* Logging? Debug? */ @@ -708,8 +710,8 @@ else ) { (void)close(inblock.sock); -#ifdef EXPERIMENTAL_TPDA - (void) tpda_raise_event(addr->transport->tpda_event_action, +#ifdef EXPERIMENTAL_EVENT + (void) event_raise(addr->transport->event_action, US"tcp:close", NULL); #endif log_write(0, LOG_MAIN, "TLS session failure: delivering unencrypted " @@ -748,9 +750,11 @@ else ) { /*save_errno = ERRNO_TLSREQUIRED;*/ - log_write(0, LOG_MAIN, "a TLS session is required for %s [%s], but %s", + log_write(0, LOG_MAIN, + "H=%s [%s]: a TLS session is required for this host, but %s", host->name, host->address, - tls_offered? "an attempt to start TLS failed" : "the server did not offer TLS support"); + tls_offered ? "an attempt to start TLS failed" + : "the server did not offer TLS support"); done= FALSE; goto TLS_FAILED; } @@ -877,9 +881,7 @@ else /* If accepted, we aren't going to do any further tests below. */ if (random_ok) - { new_domain_record.random_result = ccache_accept; - } /* Otherwise, cache a real negative response, and get back to the right state to send RCPT. Unless there's some problem such as a dropped @@ -1044,9 +1046,7 @@ else cutthrough_addr = *addr; /* Save the address_item for later logging */ cutthrough_addr.next = NULL; cutthrough_addr.host_used = store_get(sizeof(host_item)); - cutthrough_addr.host_used->name = host->name; - cutthrough_addr.host_used->address = host->address; - cutthrough_addr.host_used->port = port; + *(cutthrough_addr.host_used) = *host; if (addr->parent) *(cutthrough_addr.parent = store_get(sizeof(address_item)))= *addr->parent; ctblock.buffer = ctbuffer; @@ -1066,8 +1066,8 @@ else tls_close(FALSE, TRUE); #endif (void)close(inblock.sock); -#ifdef EXPERIMENTAL_TPDA - (void) tpda_raise_event(addr->transport->tpda_event_action, +#ifdef EXPERIMENTAL_EVENT + (void) event_raise(addr->transport->event_action, US"tcp:close", NULL); #endif } @@ -1852,8 +1852,10 @@ while (addr_new != NULL) #ifdef SUPPORT_TLS deliver_set_expansions(addr); #endif + verify_mode = is_recipient ? US"R" : US"S"; rc = do_callout(addr, host_list, &tf, callout, callout_overall, callout_connect, options, se_mailfrom, pm_mailfrom); + verify_mode = NULL; } } else