From df199fec8faee495664d153096dff38faf3ba3ad Mon Sep 17 00:00:00 2001 From: Philip Hazel Date: Mon, 21 Nov 2005 10:24:02 +0000 Subject: [PATCH] Recognize "net-" in match_ip lists (as documented). --- doc/doc-txt/ChangeLog | 5 ++++- src/src/verify.c | 19 ++++++++++--------- 2 files changed, 14 insertions(+), 10 deletions(-) diff --git a/doc/doc-txt/ChangeLog b/doc/doc-txt/ChangeLog index f9acb7dd3..824a8d3eb 100644 --- a/doc/doc-txt/ChangeLog +++ b/doc/doc-txt/ChangeLog @@ -1,4 +1,4 @@ -$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.265 2005/11/21 10:09:12 ph10 Exp $ +$Cambridge: exim/doc/doc-txt/ChangeLog,v 1.266 2005/11/21 10:24:02 ph10 Exp $ Change log file for Exim from version 4.21 ------------------------------------------- @@ -148,6 +148,9 @@ PH/17 A further patch from the Sieve maintainer: "Introduce the new Sieve Document more things not specified clearly in RFC3028. I had all this sorted out, when out of a sudden new issues came to my mind. Oops." +PH/18 Exim was not recognizing the "net-" search type prefix in match_ip lists + (Bugzilla #53). + Exim version 4.54 ----------------- diff --git a/src/src/verify.c b/src/src/verify.c index 010ea84f1..fb4382c24 100644 --- a/src/src/verify.c +++ b/src/src/verify.c @@ -1,4 +1,4 @@ -/* $Cambridge: exim/src/src/verify.c,v 1.27 2005/09/14 09:40:55 ph10 Exp $ */ +/* $Cambridge: exim/src/src/verify.c,v 1.28 2005/11/21 10:24:02 ph10 Exp $ */ /************************************************* * Exim - an Internet mail transport agent * @@ -1991,7 +1991,7 @@ if (string_is_ip_address(ss, &maskoffset) > 0) semicolon = Ustrchr(ss, ';'); /* If we are doing an IP address only match, then all lookups must be IP -address lookups. */ +address lookups, even if there is no "net-". */ if (isiponly) { @@ -1999,13 +1999,14 @@ if (isiponly) } /* Otherwise, if the item is of the form net[n]-lookup; then it is -a lookup on a masked IP network, in textual form. The net- stuff really only -applies to single-key lookups where the key is implicit. For query-style -lookups the key is specified in the query. From release 4.30, the use of net- -for query style is no longer needed, but we retain it for backward -compatibility. */ - -else if (Ustrncmp(ss, "net", 3) == 0 && semicolon != NULL) +a lookup on a masked IP network, in textual form. We obey this code even if we +have already set iplookup, so as to skip over the "net-" prefix and to set the +mask length. The net- stuff really only applies to single-key lookups where the +key is implicit. For query-style lookups the key is specified in the query. +From release 4.30, the use of net- for query style is no longer needed, but we +retain it for backward compatibility. */ + +if (Ustrncmp(ss, "net", 3) == 0 && semicolon != NULL) { mlen = 0; for (t = ss + 3; isdigit(*t); t++) mlen = mlen * 10 + *t - '0'; -- 2.25.1