-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.472 2007/02/06 14:19:00 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.473 2007/02/06 14:49:13 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
item, thus causing premature timeout of the address. The bug is now
fixed.
+PH/20 Added hosts_avoid_pipelining to the smtp transport.
+
Exim version 4.66
-----------------
-$Cambridge: exim/doc/doc-txt/NewStuff,v 1.138 2007/02/06 12:19:27 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/NewStuff,v 1.139 2007/02/06 14:49:13 ph10 Exp $
New Features in Exim
--------------------
The value is expanded every time it is needed. If the expansion fails, a
panic is logged, and the default setting is used.
+14. The smtp transport has a new option called hosts_avoid_pipelining. It can
+ be used to suppress the use of PIPELINING to certain hosts, while still
+ supporting the other SMTP extensions (cf hosts_avoid_tls).
+
Version 4.66
------------
-$Cambridge: exim/doc/doc-txt/OptionLists.txt,v 1.29 2007/01/18 15:35:42 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/OptionLists.txt,v 1.30 2007/02/06 14:49:13 ph10 Exp $
LISTS OF EXIM OPTIONS
---------------------
hosts string unset iplookup 4.00
string list* unset smtp
hosts_avoid_esmtp host list unset smtp 4.21
+hosts_avoid_pipelining host list unset smtp 4.67
hosts_avoid_tls host list unset smtp 3.20
hosts_connection_nolog host list unset main 4.43
hosts_max_try integer 5 smtp 3.20
-/* $Cambridge: exim/src/src/transports/smtp.c,v 1.34 2007/02/06 14:19:00 ph10 Exp $ */
+/* $Cambridge: exim/src/src/transports/smtp.c,v 1.35 2007/02/06 14:49:13 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
(void *)offsetof(smtp_transport_options_block, hosts) },
{ "hosts_avoid_esmtp", opt_stringptr,
(void *)offsetof(smtp_transport_options_block, hosts_avoid_esmtp) },
+ { "hosts_avoid_pipelining", opt_stringptr,
+ (void *)offsetof(smtp_transport_options_block, hosts_avoid_pipelining) },
#ifdef SUPPORT_TLS
{ "hosts_avoid_tls", opt_stringptr,
(void *)offsetof(smtp_transport_options_block, hosts_avoid_tls) },
NULL, /* hosts_require_auth */
NULL, /* hosts_require_tls */
NULL, /* hosts_avoid_tls */
+ NULL, /* hosts_avoid_pipelining */
NULL, /* hosts_avoid_esmtp */
NULL, /* hosts_nopass_tls */
5*60, /* command_timeout */
PCRE_EOPT, NULL, 0) >= 0;
/* Note whether the server supports PIPELINING. If hosts_avoid_esmtp matched
- the current host, esmtp will be false, so PIPELINING can never be used. */
+ the current host, esmtp will be false, so PIPELINING can never be used. If
+ the current host matches hosts_avoid_pipelining, don't do it. */
smtp_use_pipelining = esmtp &&
+ verify_check_this_host(&(ob->hosts_avoid_pipelining), NULL, host->name,
+ host->address, NULL) != OK &&
pcre_exec(regex_PIPELINING, NULL, CS buffer, Ustrlen(CS buffer), 0,
PCRE_EOPT, NULL, 0) >= 0;
-/* $Cambridge: exim/src/src/transports/smtp.h,v 1.11 2007/01/18 15:35:43 ph10 Exp $ */
+/* $Cambridge: exim/src/src/transports/smtp.h,v 1.12 2007/02/06 14:49:13 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
uschar *hosts_require_auth;
uschar *hosts_require_tls;
uschar *hosts_avoid_tls;
+ uschar *hosts_avoid_pipelining;
uschar *hosts_avoid_esmtp;
uschar *hosts_nopass_tls;
int command_timeout;
# Exim test configuration 0217
+HAP=
+
exim_path = EXIM_PATH
host_lookup_order = bydns
primary_hostname = myhost.test.ex
command_timeout = 1s
hosts = 127.0.0.1
port = PORT_S
-
+ HAP
# ----- Retry -----
1999-03-02 09:44:33 10HmbO-0005vi-00 ** CALLER@test.ex R=bounce: just discard
1999-03-02 09:44:33 10HmbO-0005vi-00 CALLER@test.ex: error ignored
1999-03-02 09:44:33 10HmbO-0005vi-00 Completed
+1999-03-02 09:44:33 10HmbP-0005vi-00 <= CALLER@test.ex U=CALLER P=local S=sss
+1999-03-02 09:44:33 10HmbP-0005vi-00 => w@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]
+1999-03-02 09:44:33 10HmbP-0005vi-00 -> x@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]
+1999-03-02 09:44:33 10HmbP-0005vi-00 -> y@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]
+1999-03-02 09:44:33 10HmbP-0005vi-00 -> z@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]
+1999-03-02 09:44:33 10HmbP-0005vi-00 Completed
exim -odi a b c d e
.
****
+# Discard retry data
+sudo rm DIR/spool/db/*
+#
+# Test hosts_avoid_pipelining
+server PORT_S
+220 Server ready
+EHLO
+250-OK
+250 PIPELINING
+MAIL FROM
+250 OK
+RCPT TO
+250 OK
+RCPT TO
+250 OK
+RCPT TO
+250 OK
+RCPT TO
+250 OK
+DATA
+351 Send more
+.
+250 OK
+****
+exim -v -odi -DHAP=hosts_avoid_pipelining=127.0.0.1 w x y z
+****
no_msglog_check
CALLER@test.ex: error ignored
LOG: MAIN
Completed
+LOG: MAIN
+ <= CALLER@test.ex U=CALLER P=local S=sss
+delivering 10HmbP-0005vi-00
+Connecting to 127.0.0.1 [127.0.0.1]:1224 ... connected
+ SMTP<< 220 Server ready
+ SMTP>> EHLO myhost.test.ex
+ SMTP<< 250-OK
+ 250 PIPELINING
+ SMTP>> MAIL FROM:<CALLER@test.ex>
+ SMTP<< 250 OK
+ SMTP>> RCPT TO:<w@test.ex>
+ SMTP<< 250 OK
+ SMTP>> RCPT TO:<x@test.ex>
+ SMTP<< 250 OK
+ SMTP>> RCPT TO:<y@test.ex>
+ SMTP<< 250 OK
+ SMTP>> RCPT TO:<z@test.ex>
+ SMTP<< 250 OK
+ SMTP>> DATA
+ SMTP<< 351 Send more
+ SMTP>> writing message and terminating "."
+ SMTP<< 250 OK
+ SMTP>> QUIT
+LOG: MAIN
+ => w@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]
+LOG: MAIN
+ -> x@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]
+LOG: MAIN
+ -> y@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]
+LOG: MAIN
+ -> z@test.ex R=client T=send_to_server H=127.0.0.1 [127.0.0.1]
+LOG: MAIN
+ Completed
RCPT TO:<b@test.ex>
550 NO
End of script
+Listening on port 1224 ...
+Connection request from [127.0.0.1]
+220 Server ready
+EHLO myhost.test.ex
+250-OK
+250 PIPELINING
+MAIL FROM:<CALLER@test.ex>
+250 OK
+RCPT TO:<w@test.ex>
+250 OK
+RCPT TO:<x@test.ex>
+250 OK
+RCPT TO:<y@test.ex>
+250 OK
+RCPT TO:<z@test.ex>
+250 OK
+DATA
+351 Send more
+Received: from CALLER by myhost.test.ex with local (Exim x.yz)
+ (envelope-from <CALLER@test.ex>)
+ id 10HmbP-0005vi-00; Tue, 2 Mar 1999 09:44:33 +0000
+Message-Id: <E10HmbP-0005vi-00@myhost.test.ex>
+From: CALLER_NAME <CALLER@test.ex>
+Date: Tue, 2 Mar 1999 09:44:33 +0000
+
+.
+250 OK
+End of script