summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Harris <jgh146exb@wizmail.org>2021-10-16 23:56:12 +0100
committerJeremy Harris <jgh146exb@wizmail.org>2021-10-17 12:17:59 +0100
commita375c22c1df005c1bd710af1e540fba6e9a496d1 (patch)
treef3ade6914cd3fb240f0a3a2d57094634fece6c28
parent51be321b27825c01829dffd90f11bfff256f7e42 (diff)
Change advertised feature name for PIPECONNECT
-rw-r--r--doc/doc-txt/ChangeLog4
-rw-r--r--src/src/exim.c2
-rw-r--r--src/src/globals.h2
-rw-r--r--src/src/macros.h4
-rw-r--r--src/src/transports/smtp.c10
5 files changed, 13 insertions, 9 deletions
diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog
index 811d12362..d38163be5 100644
--- a/doc/doc-txt/ChangeLog
+++ b/doc/doc-txt/ChangeLog
@@ -28,6 +28,10 @@ JH/05 Bug 2819: speed up command-line messages being read in. Previously a
JH/06 Bug 2815: Fix ALPN sent by server under OpenSSL. Previously the string
sent was prefixed with a length byte.
+JH/07 Change the SMTP feature name for pipelining connect to be compliant with
+ RFC 5321. Previously Dovecot (at least) would log errors during
+ submission.
+
Exim version 4.95
-----------------
diff --git a/src/src/exim.c b/src/src/exim.c
index f718366f6..1ed09d38d 100644
--- a/src/src/exim.c
+++ b/src/src/exim.c
@@ -1056,7 +1056,7 @@ g = string_cat(NULL, US"Support for:");
g = string_cat(g, US" OCSP");
#endif
#ifndef DISABLE_PIPE_CONNECT
- g = string_cat(g, US" PIPE_CONNECT");
+ g = string_cat(g, US" PIPECONNECT");
#endif
#ifndef DISABLE_PRDR
g = string_cat(g, US" PRDR");
diff --git a/src/src/globals.h b/src/src/globals.h
index ed264f0c1..1509ffa7f 100644
--- a/src/src/globals.h
+++ b/src/src/globals.h
@@ -275,7 +275,7 @@ extern struct global_flags {
BOOL sender_set_untrusted :1; /* Sender set by untrusted caller */
BOOL smtp_authenticated :1; /* Sending client has authenticated */
#ifndef DISABLE_PIPE_CONNECT
- BOOL smtp_in_early_pipe_advertised :1; /* server advertised PIPE_CONNECT */
+ BOOL smtp_in_early_pipe_advertised :1; /* server advertised PIPECONNECT */
BOOL smtp_in_early_pipe_no_auth :1; /* too many authenticator names */
BOOL smtp_in_early_pipe_used :1; /* client did send early data */
#endif
diff --git a/src/src/macros.h b/src/src/macros.h
index 4263bc444..b2f4095bd 100644
--- a/src/src/macros.h
+++ b/src/src/macros.h
@@ -1075,8 +1075,8 @@ should not be one active. */
#define AUTHS_REGEX US"\\n250[\\s\\-]AUTH\\s+([\\-\\w \\t]+)(?:\\n|$)"
-#define EARLY_PIPE_FEATURE_NAME "PIPE_CONNECT"
-#define EARLY_PIPE_FEATURE_LEN 12
+#define EARLY_PIPE_FEATURE_NAME "PIPECONNECT"
+#define EARLY_PIPE_FEATURE_LEN 11
/* Flags for auth_client_item() */
diff --git a/src/src/transports/smtp.c b/src/src/transports/smtp.c
index 757b7b387..b50869414 100644
--- a/src/src/transports/smtp.c
+++ b/src/src/transports/smtp.c
@@ -846,9 +846,9 @@ return Ustrchr(host->address, ':')
/* Cache EHLO-response info for use by early-pipe.
Called
- During a normal flow on EHLO response (either cleartext or under TLS),
- when we are willing to do PIPE_CONNECT and it is offered
+ when we are willing to do PIPECONNECT and it is offered
- During an early-pipe flow on receiving the actual EHLO response and noting
- disparity versus the cached info used, when PIPE_CONNECT is still being offered
+ disparity versus the cached info used, when PIPECONNECT is still being offered
We assume that suitable values have been set in the sx.ehlo_resp structure for
features and auths; we handle the copy of limits. */
@@ -2261,7 +2261,7 @@ if (!continue_hostname)
&& sx->ehlo_resp.cleartext_features & OPTION_EARLY_PIPE)
{
DEBUG(D_transport)
- debug_printf("Using cached cleartext PIPE_CONNECT\n");
+ debug_printf("Using cached cleartext PIPECONNECT\n");
sx->early_pipe_active = TRUE;
sx->peer_offered = sx->ehlo_resp.cleartext_features;
}
@@ -2763,7 +2763,7 @@ if (tls_out.active.sock >= 0)
sx->peer_offered = sx->ehlo_resp.crypted_features;
if ((sx->early_pipe_active =
!!(sx->ehlo_resp.crypted_features & OPTION_EARLY_PIPE)))
- DEBUG(D_transport) debug_printf("Using cached crypted PIPE_CONNECT\n");
+ DEBUG(D_transport) debug_printf("Using cached crypted PIPECONNECT\n");
}
#endif
#ifdef EXPERIMMENTAL_ESMTP_LIMITS
@@ -2962,7 +2962,7 @@ if ( !continue_hostname
&& ( sx->ehlo_resp.cleartext_features | sx->ehlo_resp.crypted_features)
& OPTION_EARLY_PIPE)
{
- DEBUG(D_transport) debug_printf("PIPE_CONNECT usable in future for this IP\n");
+ DEBUG(D_transport) debug_printf("PIPECONNECT usable in future for this IP\n");
sx->ehlo_resp.crypted_auths = study_ehlo_auths(sx);
write_ehlo_cache_entry(sx);
}