Gitweb:
https://git.exim.org/exim.git/commitdiff/79b19a30d9fc64a7b7f70928cdefe4f51064280b
Commit: 79b19a30d9fc64a7b7f70928cdefe4f51064280b
Parent: 99350dede64ad634300ddf15d0d97a81fd75d330
Author: Jeremy Harris <jgh146exb@???>
AuthorDate: Sun Aug 23 17:27:30 2020 +0100
Committer: Jeremy Harris <jgh146exb@???>
CommitDate: Sun Aug 23 17:27:30 2020 +0100
Fix non-DANE build
---
src/src/transports/smtp.c | 19 +++++++++++--------
1 file changed, 11 insertions(+), 8 deletions(-)
diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index 447f76a..16da67f 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -2021,8 +2021,7 @@ if (!continue_hostname)
ob->tls_sni = sx->first_addr->domain; /* force SNI */
break;
case FAIL_FORCED: break;
- default:
- set_errno_nohost(sx->addrlist, ERRNO_DNSDEFER,
+ default: set_errno_nohost(sx->addrlist, ERRNO_DNSDEFER,
string_sprintf("DANE error: tlsa lookup %s",
rc_to_string(rc)),
rc, FALSE, &sx->delivery_start);
@@ -3443,7 +3442,9 @@ BOOL pass_message = FALSE;
uschar *message = NULL;
uschar new_message_id[MESSAGE_ID_LENGTH + 1];
smtp_context * sx = store_get(sizeof(*sx), TRUE); /* tainted, for the data buffers */
+#if !defined(DISABLE_TLS) && defined(SUPPORT_DANE)
BOOL dane_held;
+#endif
*message_defer = FALSE;
@@ -3459,8 +3460,10 @@ sx->conn_args.tblock = tblock;
gettimeofday(&sx->delivery_start, NULL);
sx->sync_addr = sx->first_addr = addrlist;
+#if !defined(DISABLE_TLS) && defined(SUPPORT_DANE)
DANE_DOMAINS:
dane_held = FALSE;
+#endif
/* Get the channel set up ready for a message, MAIL FROM being the next
SMTP command to send. */
@@ -3472,7 +3475,7 @@ if ((rc = smtp_setup_conn(sx, suppress_tls)) != OK)
goto TIDYUP;
}
-/*XXX*/
+#if !defined(DISABLE_TLS) && defined(SUPPORT_DANE)
/* If the connection used DANE, ignore for now any addresses with incompatible
domains. The SNI has to be the domain. Arrange a whole new TCP conn later,
just in case only TLS isn't enough. */
@@ -3490,6 +3493,7 @@ if (sx->conn_args.dane)
a->transport_return = DANE;
}
}
+#endif
/* If there is a filter command specified for this transport, we can now
set it up. This cannot be done until the identity of the host is known. */
@@ -4253,10 +4257,6 @@ if (sx->completed_addr && sx->ok && sx->send_quit)
if (tls_out.active.sock >= 0)
if ( f.continue_more
|| verify_check_given_host(CUSS &ob->hosts_noproxy_tls, host) == OK)
-
-/*XXX*/
-/* || sx->conn_args.dane && Ustrcmp( , ob->tls_sni) != 0 */
-/*XXX*/
{
/* Before passing the socket on, or returning to caller with it still
open, we must shut down TLS. Not all MTAs allow for the continuation
@@ -4409,7 +4409,7 @@ if (sx->send_quit)
(void) event_raise(tblock->event_action, US"tcp:close", NULL);
#endif
-/*XXX*/
+#if !defined(DISABLE_TLS) && defined(SUPPORT_DANE)
if (dane_held)
{
sx->first_addr = NULL;
@@ -4428,15 +4428,18 @@ if (dane_held)
}
goto DANE_DOMAINS;
}
+#endif
continue_transport = NULL;
continue_hostname = NULL;
return yield;
TIDYUP:
+#if !defined(DISABLE_TLS) && defined(SUPPORT_DANE)
if (dane_held) for (address_item * a = sx->addrlist->next; a; a = a->next)
if (a->transport_return == DANE)
a->transport_return = PENDING_DEFER;
+#endif
return yield;
}