ph10 2005/04/06 17:26:42 BST
Modified files:
exim-doc/doc-txt ChangeLog
exim-src README.UPDATING
exim-src/src verify.c
exim-test-orig/AutoTest/confs 002
exim-test-orig/AutoTest/stderr 400
exim-test-orig/AutoTest/stdout 001 002
Added files:
exim-test-orig/AutoTest/confs 607
exim-test-orig/AutoTest/scripts 607
exim-test-orig/AutoTest/stdout 607
Log:
Pay attention to local part prefixes and suffixes when doing callouts.
Revision Changes Path
1.118 +7 -0 exim/exim-doc/doc-txt/ChangeLog
1.6 +11 -2 exim/exim-src/README.UPDATING
1.16 +2 -1 exim/exim-src/src/verify.c
1.7 +2 -0 exim/exim-test-orig/AutoTest/confs/002
1.1 +56 -0 exim/exim-test-orig/AutoTest/confs/607 (new)
1.1 +95 -0 exim/exim-test-orig/AutoTest/scripts/607 (new)
1.3 +2 -2 exim/exim-test-orig/AutoTest/stderr/400
1.9 +4 -0 exim/exim-test-orig/AutoTest/stdout/001
1.7 +8 -0 exim/exim-test-orig/AutoTest/stdout/002
1.1 +109 -0 exim/exim-test-orig/AutoTest/stdout/607 (new)
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.117
retrieving revision 1.118
diff -u -r1.117 -r1.118
--- ChangeLog 6 Apr 2005 15:26:52 -0000 1.117
+++ ChangeLog 6 Apr 2005 16:26:42 -0000 1.118
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.117 2005/04/06 15:26:52 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.118 2005/04/06 16:26:42 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -189,6 +189,13 @@
Exim incorrectly logged both deliveries with the TLS parameters (cipher
and peerdn, if requested) that were in fact used only for the second
address.
+
+PH/31 When doing a callout as part of verifying an address, Exim was not paying
+ attention to any local part prefix or suffix that was matched by the
+ router that accepted the address. It now behaves in the same way as it
+ does for delivery: the affixes are removed from the local part unless
+ rcpt_include_affixes is set on the transport.
+
A note about Exim versions 4.44 and 4.50
Index: README.UPDATING
===================================================================
RCS file: /home/cvs/exim/exim-src/README.UPDATING,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- README.UPDATING 8 Mar 2005 11:38:21 -0000 1.5
+++ README.UPDATING 6 Apr 2005 16:26:42 -0000 1.6
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-src/README.UPDATING,v 1.5 2005/03/08 11:38:21 ph10 Exp $
+$Cambridge: exim/exim-src/README.UPDATING,v 1.6 2005/04/06 16:26:42 ph10 Exp $
This document contains detailed information about incompatibilities that might
be encountered when upgrading from one release of Exim to another. The
@@ -31,8 +31,8 @@
Version 4.51
------------
-The format in which GnuTLS parameters are cached (in the file gnutls-params in
-the spool directory) has been changed. The new format can also be generated
+1. The format in which GnuTLS parameters are cached (in the file gnutls-params
+in the spool directory) has been changed. The new format can also be generated
externally, so it is now possible to update the values from outside Exim. This
has been implemented in an upwards, BUT NOT downwards, compatible manner.
Upgrading should be seamless: when Exim finds that it cannot understand an
@@ -40,6 +40,15 @@
in the new format. If, however, you downgrade from 4.51 to a previous release,
you MUST delete the gnutls-params file in the spool directory, because the
older Exim will not recognize the new format.
+
+2. When doing a callout as part of verifying an address, Exim was not paying
+attention to any local part prefix or suffix that was matched by the router
+that accepted the address. It now behaves in the same way as it does for
+delivery: the affixes are removed from the local part unless
+rcpt_include_affixes is set on the transport. If you have a configuration that
+uses prefixes or suffixes on addresses that could be used for callouts, and you
+want the affixes to be retained, you must make sure that rcpt_include_affixes
+is set on the transport.
Version 4.50
Index: verify.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/verify.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- verify.c 17 Feb 2005 11:58:26 -0000 1.15
+++ verify.c 6 Apr 2005 16:26:42 -0000 1.16
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/verify.c,v 1.15 2005/02/17 11:58:26 ph10 Exp $ */
+/* $Cambridge: exim/exim-src/src/verify.c,v 1.16 2005/04/06 16:26:42 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -550,7 +550,8 @@
{
done =
smtp_write_command(&outblock, FALSE, "RCPT TO:<%.1000s>\r\n",
- addr->address) >= 0 &&
+ transport_rcpt_address(addr,
+ addr->transport->rcpt_include_affixes)) >= 0 &&
smtp_read_response(&inblock, responsebuffer, sizeof(responsebuffer),
'2', callout);
Index: 607
====================================================================
# Exim test configuration 607
# Macros are set externally in order to get the path
# of the Exim that is being tested, and the directory
# in which the test data lives.
exim_path = EXIM_PATH
primary_hostname = myhost.test.ex
spool_directory = DIR/spool
# ----- Main settings -----
acl_smtp_rcpt = check_rcpt
queue_only
# ----- ACLs -----
begin acl
check_rcpt:
accept verify = recipient/callout
# ----- Routers -----
begin routers
r1:
driver = accept
local_part_prefix = *+
local_part_suffix = -*
local_part_prefix_optional
local_part_suffix_optional
transport = ${if eq {$domain}{include}{t1}{t2}}
# ----- Transports -----
begin transports
t1:
driver = smtp
hosts = 127.0.0.1
port = 1225
allow_localhost
rcpt_include_affixes
t2:
driver = smtp
hosts = 127.0.0.1
port = 1225
allow_localhost
# End
Index: 002
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/confs/002,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- 002 5 Apr 2005 13:58:35 -0000 1.6
+++ 002 6 Apr 2005 16:26:42 -0000 1.7
@@ -460,6 +460,8 @@
no_rewrite
senders =
sieve_vacation_directory = /thing/thong
+ sieve_subaddress = rhubarb
+ sieve_useraddress = custard
no_skip_syntax_errors
syntax_errors_to =
transport_current_directory =
Index: 607
====================================================================
0 Affixes in RCPT commands for recipient callouts
server 1225 8
220 Welcome
HELO
250 Hi
MAIL FROM
250 OK
RCPT TO
250 OK
QUIT
250 OK
*eof
220 Welcome
HELO
250 Hi
MAIL FROM
250 OK
RCPT TO
250 OK
QUIT
250 OK
*eof
220 Welcome
HELO
250 Hi
MAIL FROM
250 OK
RCPT TO
250 OK
QUIT
250 OK
*eof
220 Welcome
HELO
250 Hi
MAIL FROM
250 OK
RCPT TO
250 OK
QUIT
250 OK
*eof
220 Welcome
HELO
250 Hi
MAIL FROM
250 OK
RCPT TO
250 OK
QUIT
250 OK
*eof
220 Welcome
HELO
250 Hi
MAIL FROM
250 OK
RCPT TO
250 OK
QUIT
250 OK
*eof
220 Welcome
HELO
250 Hi
MAIL FROM
250 OK
RCPT TO
250 OK
QUIT
250 OK
*eof
220 Welcome
HELO
250 Hi
MAIL FROM
250 OK
RCPT TO
250 OK
QUIT
250 OK
****
0
exim -odq -bs
mail from:<>
RCPT TO:<abc@include>
RCPT TO:<abc@exclude>
RCPT TO:<p+abc@include>
RCPT TO:<p+abc@exclude>
RCPT TO:<abc-s@include>
RCPT TO:<abc-s@exclude>
RCPT TO:<p+abc-s@include>
RCPT TO:<p+abc-s@exclude>
quit
****
Index: 400
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stderr/400,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- 400 17 Dec 2004 14:52:44 -0000 1.2
+++ 400 6 Apr 2005 16:26:42 -0000 1.3
@@ -12,12 +12,12 @@
---1 Get 248
---1 Get 8
---1 Get 16
----1 Get 120
+---1 Get 128
---1 Get 64
---1 Get 248
---1 Get 8
---1 Get 16
----1 Get 120
+---1 Get 128
---1 Get 16
---1 Get 24
---1 Get 8
Index: 607
====================================================================
220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000
250 OK
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
250 Accepted
221 myhost.test.ex closing connection
******** SERVER ********
Listening on port 1225 ...
Connection request from [127.0.0.1]
220 Welcome
HELO myhost.test.ex
250 Hi
MAIL FROM:<>
250 OK
RCPT TO:<abc@include>
250 OK
QUIT
250 OK
Expected EOF read from client
Listening on port 1225 ...
Connection request from [127.0.0.1]
220 Welcome
HELO myhost.test.ex
250 Hi
MAIL FROM:<>
250 OK
RCPT TO:<abc@exclude>
250 OK
QUIT
250 OK
Expected EOF read from client
Listening on port 1225 ...
Connection request from [127.0.0.1]
220 Welcome
HELO myhost.test.ex
250 Hi
MAIL FROM:<>
250 OK
RCPT TO:<p+abc@include>
250 OK
QUIT
250 OK
Expected EOF read from client
Listening on port 1225 ...
Connection request from [127.0.0.1]
220 Welcome
HELO myhost.test.ex
250 Hi
MAIL FROM:<>
250 OK
RCPT TO:<abc@exclude>
250 OK
QUIT
250 OK
Expected EOF read from client
Listening on port 1225 ...
Connection request from [127.0.0.1]
220 Welcome
HELO myhost.test.ex
250 Hi
MAIL FROM:<>
250 OK
RCPT TO:<abc-s@include>
250 OK
QUIT
250 OK
Expected EOF read from client
Listening on port 1225 ...
Connection request from [127.0.0.1]
220 Welcome
HELO myhost.test.ex
250 Hi
MAIL FROM:<>
250 OK
RCPT TO:<abc@exclude>
250 OK
QUIT
250 OK
Expected EOF read from client
Listening on port 1225 ...
Connection request from [127.0.0.1]
220 Welcome
HELO myhost.test.ex
250 Hi
MAIL FROM:<>
250 OK
RCPT TO:<p+abc-s@include>
250 OK
QUIT
250 OK
Expected EOF read from client
Listening on port 1225 ...
Connection request from [127.0.0.1]
220 Welcome
HELO myhost.test.ex
250 Hi
MAIL FROM:<>
250 OK
RCPT TO:<abc@exclude>
250 OK
QUIT
250 OK
End of script
Index: 001
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/001,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- 001 5 Apr 2005 13:58:35 -0000 1.8
+++ 001 6 Apr 2005 16:26:42 -0000 1.9
@@ -493,6 +493,8 @@
repeat_use
reply_transport =
rewrite
+sieve_subaddress =
+sieve_useraddress =
sieve_vacation_directory =
no_skip_syntax_errors
syntax_errors_text =
@@ -583,6 +585,8 @@
repeat_use
reply_transport =
rewrite
+sieve_subaddress =
+sieve_useraddress =
sieve_vacation_directory =
no_skip_syntax_errors
syntax_errors_text =
Index: 002
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/stdout/002,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- 002 5 Apr 2005 13:58:35 -0000 1.6
+++ 002 6 Apr 2005 16:26:42 -0000 1.7
@@ -498,6 +498,8 @@
no_repeat_use
reply_transport =
no_rewrite
+sieve_subaddress = rhubarb
+sieve_useraddress = custard
sieve_vacation_directory = /thing/thong
no_skip_syntax_errors
syntax_errors_text =
@@ -588,6 +590,8 @@
repeat_use
reply_transport =
rewrite
+sieve_subaddress =
+sieve_useraddress =
sieve_vacation_directory =
no_skip_syntax_errors
syntax_errors_text =
@@ -678,6 +682,8 @@
repeat_use
reply_transport = dummy
rewrite
+sieve_subaddress =
+sieve_useraddress =
sieve_vacation_directory =
no_skip_syntax_errors
syntax_errors_text = rhubarb
@@ -814,6 +820,8 @@
repeat_use
reply_transport =
no_rewrite
+sieve_subaddress =
+sieve_useraddress =
sieve_vacation_directory =
no_skip_syntax_errors
syntax_errors_text =