git://git.exim.org
/
exim.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (from parent 1:
51be321
)
Change advertised feature name for PIPECONNECT
author
Jeremy Harris
<jgh146exb@wizmail.org>
Sat, 16 Oct 2021 22:56:12 +0000
(23:56 +0100)
committer
Jeremy Harris
<jgh146exb@wizmail.org>
Sun, 17 Oct 2021 11:17:59 +0000
(12:17 +0100)
doc/doc-txt/ChangeLog
patch
|
blob
|
history
src/src/exim.c
patch
|
blob
|
history
src/src/globals.h
patch
|
blob
|
history
src/src/macros.h
patch
|
blob
|
history
src/src/transports/smtp.c
patch
|
blob
|
history
diff --git
a/doc/doc-txt/ChangeLog
b/doc/doc-txt/ChangeLog
index 811d123622d8e0339a921bc993e02ef844fcd62e..d38163be55f1a5ed3936731c97eaf54c324b524b 100644
(file)
--- 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/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
-----------------
Exim version 4.95
-----------------
diff --git
a/src/src/exim.c
b/src/src/exim.c
index f718366f68803e9de79afed986d60f8fa2ca05f7..1ed09d38dd0089c06364f20ae64ce90b4fcec0e9 100644
(file)
--- 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" 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");
#endif
#ifndef DISABLE_PRDR
g = string_cat(g, US" PRDR");
diff --git
a/src/src/globals.h
b/src/src/globals.h
index ed264f0c149d79c1c62d33211d655678f858936a..1509ffa7fcb95c4d6f132fe6dfdaaaaa2048f836 100644
(file)
--- 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 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
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 4263bc444af7ae40d5c903f7394e11fa07d579ad..b2f4095bd6e0590de6cc10b511234cf23e57911d 100644
(file)
--- 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 AUTHS_REGEX US"\\n250[\\s\\-]AUTH\\s+([\\-\\w \\t]+)(?:\\n|$)"
-#define EARLY_PIPE_FEATURE_NAME "PIPE
_
CONNECT"
-#define EARLY_PIPE_FEATURE_LEN 1
2
+#define EARLY_PIPE_FEATURE_NAME "PIPECONNECT"
+#define EARLY_PIPE_FEATURE_LEN 1
1
/* Flags for auth_client_item() */
/* Flags for auth_client_item() */
diff --git
a/src/src/transports/smtp.c
b/src/src/transports/smtp.c
index 757b7b3879cbd2d2e93dbba516721e6247ac08c5..b50869414612d44016c8e3db175f8dc82dda1dbe 100644
(file)
--- 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),
/* 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
- 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. */
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)
&& 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;
}
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)))
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
}
#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)
{
&& ( 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);
}
sx->ehlo_resp.crypted_auths = study_ehlo_auths(sx);
write_ehlo_cache_entry(sx);
}