ph10 2005/03/22 15:45:36 GMT
Modified files:
exim-doc/doc-txt ChangeLog
exim-src/src/transports smtp.c
exim-test-orig/AutoTest/confs 096
exim-test-orig/AutoTest/log 096
exim-test-orig/AutoTest/msglog 096.10HmaX-0005vi-00
Log:
Bugzilla #2: If the last fallback host listed was multihomed, only its
first IP address was ever used.
Revision Changes Path
1.97 +3 -0 exim/exim-doc/doc-txt/ChangeLog
1.8 +7 -5 exim/exim-src/src/transports/smtp.c
1.2 +3 -68 exim/exim-test-orig/AutoTest/confs/096
1.2 +3 -1 exim/exim-test-orig/AutoTest/log/096
1.2 +3 -1 exim/exim-test-orig/AutoTest/msglog/096.10HmaX-0005vi-00
Index: ChangeLog
===================================================================
RCS file: /home/cvs/exim/exim-doc/doc-txt/ChangeLog,v
retrieving revision 1.96
retrieving revision 1.97
diff -u -r1.96 -r1.97
--- ChangeLog 22 Mar 2005 15:07:42 -0000 1.96
+++ ChangeLog 22 Mar 2005 15:45:35 -0000 1.97
@@ -1,4 +1,4 @@
-$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.96 2005/03/22 15:07:42 ph10 Exp $
+$Cambridge: exim/exim-doc/doc-txt/ChangeLog,v 1.97 2005/03/22 15:45:35 ph10 Exp $
Change log file for Exim from version 4.21
-------------------------------------------
@@ -67,6 +67,9 @@
also be put in a bounce message.
PH/11 Installed exipick version 20050225.0 from John Jetmore.
+
+PH/12 If the last host in a fallback_hosts list was multihomed, only the first
+ of its addresses was ever tried. (Bugzilla bug #2.)
A note about Exim versions 4.44 and 4.50
Index: smtp.c
===================================================================
RCS file: /home/cvs/exim/exim-src/src/transports/smtp.c,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -r1.7 -r1.8
--- smtp.c 8 Mar 2005 15:32:02 -0000 1.7
+++ smtp.c 22 Mar 2005 15:45:35 -0000 1.8
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/exim-src/src/transports/smtp.c,v 1.7 2005/03/08 15:32:02 tom Exp $ */
+/* $Cambridge: exim/exim-src/src/transports/smtp.c,v 1.8 2005/03/22 15:45:35 ph10 Exp $ */
/*************************************************
* Exim - an Internet mail transport agent *
@@ -2172,11 +2172,6 @@
uschar *retry_message_key = NULL;
uschar *serialize_key = NULL;
- /* Default next host is next host. :-) But this can vary if the
- hosts_max_try limit is hit (see below). */
-
- nexthost = host->next;
-
/* Set the flag requesting that this host be added to the waiting
database if the delivery fails temporarily or if we are running with
queue_smtp or a 2-stage queue run. This gets unset for certain
@@ -2282,6 +2277,13 @@
expired = FALSE;
continue; /* With next host */
}
+
+ /* The default next host is the next host. :-) But this can vary if the
+ hosts_max_try limit is hit (see below). NOTE: we cannot put this setting
+ earlier than this, because a multihomed host whose addresses are not looked
+ up till just above will add to the host list. */
+
+ nexthost = host->next;
/* If queue_smtp is set (-odqs or the first part of a 2-stage run), or the
domain is in queue_smtp_domains, we don't actually want to attempt any
Index: 096
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/confs/096,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 096 8 Oct 2004 14:49:15 -0000 1.1
+++ 096 22 Mar 2005 15:45:36 -0000 1.2
@@ -1,31 +1,10 @@
-#!!# This file is output from the convert4r4 script, which tries
-#!!# to convert Exim 3 configurations into Exim 4 configurations.
-#!!# However, is is not perfect, especially with non-simple
-#!!# configurations. You must check it before running it.
-
-
-#!!# These options specify the Access Control Lists (ACLs) that
-#!!# are used for incoming SMTP messages - after the RCPT and DATA
-#!!# commands, respectively.
-
-acl_smtp_rcpt = check_recipient
-acl_smtp_data = check_message
-
-#!!# This setting defines a named domain list called
-#!!# local_domains, created from the old options that
-#!!# referred to local domains. It will be referenced
-#!!# later on by the syntax "+local_domains".
-#!!# Other domain and host lists may follow.
-
-domainlist local_domains = test.ex
-
-
# Exim test configuration 094
# 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.
+domainlist local_domains = test.ex
exim_path = EXIM_PATH
spool_directory = DIR/spool
@@ -33,48 +12,11 @@
qualify_domain = test.ex
-#!!# remote_sort renamed remote_sort_domains
-remote_sort_domains = black.com:myhost.com:other.edu
-
-
-#!!#######################################################!!#
-#!!# This new section of the configuration contains ACLs #!!#
-#!!# (Access Control Lists) derived from the Exim 3 #!!#
-#!!# policy control options. #!!#
-#!!#######################################################!!#
-
-#!!# These ACLs are crudely constructed from Exim 3 options.
-#!!# They are almost certainly not optimal. You should study
-#!!# them and rewrite as necessary.
-
-begin acl
-
-#!!# ACL that is used after the RCPT command
-check_recipient:
- # Exim 3 had no checking on -bs messages
- accept hosts = :
- accept domains = +local_domains
- deny message = relay not permitted
-
-#!!# ACL that is used after the DATA command
-check_message:
- accept
-
-# ----- Rewrite -----
-
-# End
-
-#!!#######################################################!!#
-#!!# Here follow routers created from the old routers, #!!#
-#!!# for handling non-local domains. #!!#
-#!!#######################################################!!#
+# ----- Routers -----
begin routers
-
-# ----- Routers -----
-
remote:
driver = manualroute
domains = ! +local_domains
@@ -85,14 +27,6 @@
no_more
-#!!#######################################################!!#
-#!!# Here follow routers created from the old directors, #!!#
-#!!# for handling local domains. #!!#
-#!!#######################################################!!#
-
-# ----- Directors -----
-
-
# ----- Transports -----
begin transports
@@ -100,6 +34,7 @@
smtp:
driver = smtp
port = 9999
+ allow_localhost
# ----- Retry -----
Index: 096
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/log/096,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 096 8 Oct 2004 14:49:31 -0000 1.1
+++ 096 22 Mar 2005 15:45:36 -0000 1.2
@@ -1,4 +1,6 @@
1999-03-02 09:44:33 10HmaX-0005vi-00 <= ph10@??? U=ph10 P=local S=273
1999-03-02 09:44:33 10HmaX-0005vi-00 localhost [::1]: Connection refused
1999-03-02 09:44:33 10HmaX-0005vi-00 localhost [127.0.0.1]: Connection refused
-1999-03-02 09:44:33 10HmaX-0005vi-00 == xx@??? R=remote T=smtp defer (0): smtp transport found host xoanon.csi.cam.ac.uk to be local
+1999-03-02 09:44:33 10HmaX-0005vi-00 xoanon.csi.cam.ac.uk [2001:630:200:8100:207:e9ff:fe5d:b693]: Connection refused
+1999-03-02 09:44:33 10HmaX-0005vi-00 xoanon.csi.cam.ac.uk [131.111.10.206]: Connection refused
+1999-03-02 09:44:33 10HmaX-0005vi-00 == xx@??? R=remote T=smtp defer (111): Connection refused
Index: 096.10HmaX-0005vi-00
===================================================================
RCS file: /home/cvs/exim/exim-test-orig/AutoTest/msglog/096.10HmaX-0005vi-00,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- 096.10HmaX-0005vi-00 8 Oct 2004 14:49:49 -0000 1.1
+++ 096.10HmaX-0005vi-00 22 Mar 2005 15:45:36 -0000 1.2
@@ -1,4 +1,6 @@
1999-03-02 09:44:33 Received from ph10@??? U=ph10 P=local S=273
1999-03-02 09:44:33 localhost [::1]: Connection refused
1999-03-02 09:44:33 localhost [127.0.0.1]: Connection refused
-1999-03-02 09:44:33 xx@??? R=remote T=smtp defer (0): smtp transport found host xoanon.csi.cam.ac.uk to be local
+1999-03-02 09:44:33 xoanon.csi.cam.ac.uk [2001:630:200:8100:207:e9ff:fe5d:b693]: Connection refused
+1999-03-02 09:44:33 xoanon.csi.cam.ac.uk [131.111.10.206]: Connection refused
+1999-03-02 09:44:33 xx@??? R=remote T=smtp defer (111): Connection refused