Fix address sorting untidiness for the test suite.
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Fri, 17 Mar 2006 16:51:45 +0000 (16:51 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Fri, 17 Mar 2006 16:51:45 +0000 (16:51 +0000)
doc/doc-txt/ChangeLog
src/src/host.c
test/confs/0366
test/confs/0455
test/confs/0499
test/runtest
test/stderr/0499
test/stdout/0467

index c70050d362285da1fd44b0617f0d97817b7c7a3d..ce3d142e75c376e84fa0cc6c845501759dd1c043 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.333 2006/03/17 09:39:00 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.334 2006/03/17 16:51:45 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -323,6 +323,9 @@ PH/65 Added configuration files for NetBSD3.
 
 PH/66 Updated OS/Makefile-HP-UX for gcc 4.1.0 with HP-UX 11.
 
 
 PH/66 Updated OS/Makefile-HP-UX for gcc 4.1.0 with HP-UX 11.
 
+PH/67 Fixed minor infelicity in the sorting of addresses to ensure that IPv6
+      is preferred over IPv4.
+
 
 Exim version 4.60
 -----------------
 
 Exim version 4.60
 -----------------
index 07d28395e58707b9ccc4d4f04d77030258008e88..01191f454b893871449202c1321e2c0f8445340a 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/host.c,v 1.22 2006/02/16 10:05:33 ph10 Exp $ */
+/* $Cambridge: exim/src/src/host.c,v 1.23 2006/03/17 16:51:45 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -2876,17 +2876,19 @@ single MX preference value, IPv6 addresses come first. This can separate the
 addresses of a multihomed host, but that should not matter. */
 
 #if HAVE_IPV6
 addresses of a multihomed host, but that should not matter. */
 
 #if HAVE_IPV6
-if (h != last)
+if (h != last && !disable_ipv6)
   {
   for (h = host; h != last; h = h->next)
     {
     host_item temp;
     host_item *next = h->next;
   {
   for (h = host; h != last; h = h->next)
     {
     host_item temp;
     host_item *next = h->next;
-    if (h->mx != next->mx ||                /* If next is different MX value */
-        (h->sort_key % 1000) < 500 ||       /* OR this one is IPv6 */
-        (next->sort_key % 1000) >= 500)     /* OR next is IPv4 */
-      continue;                             /* move on to next */
-    temp = *h;
+    if (h->mx != next->mx ||                   /* If next is different MX */
+        h->address == NULL ||                  /* OR this one is unset */
+        Ustrchr(h->address, ':') != NULL ||    /* OR this one is IPv6 */
+        (next->address != NULL &&
+         Ustrchr(next->address, ':') == NULL)) /* OR next is IPv4 */
+      continue;                                /* move on to next */
+    temp = *h;                                 /* otherwise, swap */
     temp.next = next->next;
     *h = *next;
     h->next = next;
     temp.next = next->next;
     *h = *next;
     h->next = next;
index 62fdda1cb895bd324764c6cfc4808320783d8ccb..930b6467d161a771cb7191383d7ac11228fa9548 100644 (file)
@@ -14,6 +14,7 @@ gecos_name = CALLER_NAME
 
 ignore_bounce_errors_after = 0s
 qualify_domain = test.ex
 
 ignore_bounce_errors_after = 0s
 qualify_domain = test.ex
+disable_ipv6
 
 # ----- Routers -----
 
 
 # ----- Routers -----
 
index eb6982fd63f03ff049a357e4460afd270eba4bcf..14e4161f2adf21abe5a51b4ef8b8bfea401dbe5c 100644 (file)
@@ -16,6 +16,7 @@ acl_not_smtp = non
 
 ignore_bounce_errors_after = 0s
 qualify_domain = test.ex
 
 ignore_bounce_errors_after = 0s
 qualify_domain = test.ex
+disable_ipv6
 
 
 # ----- ACLs -----
 
 
 # ----- ACLs -----
index 18364b7cf4a9a42b16aa87c4b22be25898580c4e..ada9e8aa528792db10127a22139afb00cbac535f 100644 (file)
@@ -12,6 +12,7 @@ gecos_name = CALLER_NAME
 # ----- Main settings -----
 
 domainlist anymx = @mx_any
 # ----- Main settings -----
 
 domainlist anymx = @mx_any
+disable_ipv6
 
 
 # ----- Routers -----
 
 
 # ----- Routers -----
index 699030bda7aaff53a51321a22756111445dd056a..76cc4b99b967b7d79b86eeff9aed3f211f64c01c 100755 (executable)
@@ -1,6 +1,6 @@
 #! /usr/bin/perl -w
 
 #! /usr/bin/perl -w
 
-# $Cambridge: exim/test/runtest,v 1.5 2006/02/16 14:34:42 ph10 Exp $
+# $Cambridge: exim/test/runtest,v 1.6 2006/03/17 16:51:45 ph10 Exp $
 
 ###############################################################################
 # This is the controlling script for the "new" test suite for Exim. It should #
 
 ###############################################################################
 # This is the controlling script for the "new" test suite for Exim. It should #
@@ -648,9 +648,11 @@ while(<IN>)
 
   if ($is_stdout)
     {
 
   if ($is_stdout)
     {
-    # Skip translate_ip_address in -bP output because it ain't always there
+    # Skip translate_ip_address and use_classresources in -bP output because
+    # they aren't always there.
 
     next if /translate_ip_address =/;
 
     next if /translate_ip_address =/;
+    next if /use_classresources/;
 
     # In certain filter tests, remove initial filter lines because they just
     # clog up by repetition.
 
     # In certain filter tests, remove initial filter lines because they just
     # clog up by repetition.
index 47a8229c7ba374351cc6b555c692da8204c8093d..13b4d4f0fe26f848586036d972cfcdecfd1934bf 100644 (file)
@@ -27,7 +27,6 @@ mxt1.test.ex in "+anymx"? yes (matched "+anymx")
 checking "condition"
 DNS lookup of mxt1.test.ex (MX) using fakens
 DNS lookup of mxt1.test.ex (MX) succeeded
 checking "condition"
 DNS lookup of mxt1.test.ex (MX) using fakens
 DNS lookup of mxt1.test.ex (MX) succeeded
-DNS lookup of eximtesthost.test.ex-AAAA: using cached value DNS_NODATA
 DNS lookup of eximtesthost.test.ex (A) using fakens
 DNS lookup of eximtesthost.test.ex (A) succeeded
 local host has lowest MX
 DNS lookup of eximtesthost.test.ex (A) using fakens
 DNS lookup of eximtesthost.test.ex (A) succeeded
 local host has lowest MX
index 60ffdae03118ee6aaa348390263a90e48a77b7f8..d9c20263ccf7e1d6a8dda5c76966877d7a94b3fd 100644 (file)
@@ -5,8 +5,8 @@ x@srv01.test.ex
   host ten-1.test.ex [V4NET.0.0.1] MX=0 port=25
 x@mx246.test.ex
   router = r1, transport = t1
   host ten-1.test.ex [V4NET.0.0.1] MX=0 port=25
 x@mx246.test.ex
   router = r1, transport = t1
-  host v6.test.ex [unknown] MX=10 ** unusable **
   host ten-1.test.ex [V4NET.0.0.1] MX=10
   host ten-1.test.ex [V4NET.0.0.1] MX=10
+  host v6.test.ex [unknown] MX=10 ** unusable **
 x@srv02.test.ex
   router = r1, transport = t1
   host ten-1.test.ex [V4NET.0.0.1] MX=1 port=99
 x@srv02.test.ex
   router = r1, transport = t1
   host ten-1.test.ex [V4NET.0.0.1] MX=1 port=99