Fix another case of bad comparison between IPv6 addresses that may or
authorPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 28 Nov 2005 10:07:55 +0000 (10:07 +0000)
committerPhilip Hazel <ph10@hermes.cam.ac.uk>
Mon, 28 Nov 2005 10:07:55 +0000 (10:07 +0000)
may not be abbreviated.

doc/doc-txt/ChangeLog
src/src/verify.c

index 75826bd..a81309b 100644 (file)
@@ -1,4 +1,4 @@
-$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.267 2005/11/21 12:04:23 ph10 Exp $
+$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.268 2005/11/28 10:07:55 ph10 Exp $
 
 Change log file for Exim from version 4.21
 -------------------------------------------
@@ -161,6 +161,11 @@ PH/19 Exim expands the IPv6 address given to -bh to its full non-abbreviated
       by converting both addresses to binary, so now that is used instead of
       the text comparison.
 
+PH/20 There was another similar case to PH/19, when a complete host name was
+      given in a host list; looking up its IP address could give an abbreviated
+      form, whereas the current host's name might or might not be abbreviated.
+      The same fix has been applied.
+
 
 Exim version 4.54
 -----------------
index fb4382c..b84044d 100644 (file)
@@ -1,4 +1,4 @@
-/* $Cambridge: exim/src/src/verify.c,v 1.28 2005/11/21 10:24:02 ph10 Exp $ */
+/* $Cambridge: exim/src/src/verify.c,v 1.29 2005/11/28 10:07:55 ph10 Exp $ */
 
 /*************************************************
 *     Exim - an Internet mail transport agent    *
@@ -2109,9 +2109,7 @@ if (*t == 0)
     host_item *hh;
     for (hh = &h; hh != NULL; hh = hh->next)
       {
-      if (Ustrcmp(hh->address, (Ustrchr(hh->address, ':') == NULL)?
-        cb->host_ipv4 : cb->host_address) == 0)
-          return OK;
+      if (host_is_in_net(hh->address, cb->host_address, 0)) return OK;
       }
     return FAIL;
     }