From 7d08aa891138694abab36a0f291c8d4f4397a190 Mon Sep 17 00:00:00 2001 From: jilles Date: Mon, 4 Jun 2007 09:04:49 -0700 Subject: [PATCH] [svn] xline/resv wildcard checking: - count escaped (\) characters as one nonwild - accept strings without wilds no matter how short they are --- ChangeLog | 9 +++++++++ include/serno.h | 2 +- src/s_newconf.c | 12 +++++++++--- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7f7edf9..bdc37c4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +jilles 2007/05/30 10:22:25 UTC (20070530-3498) + Log: + Tweak some comments in sno_whois extension. + + + Changes: Modified: + +2 -2 trunk/extensions/sno_whois.c (File Modified) + + jilles 2007/05/30 10:22:01 UTC (20070530-3496) Log: Tweak NEWS a little. diff --git a/include/serno.h b/include/serno.h index 89e5f38..3899a09 100644 --- a/include/serno.h +++ b/include/serno.h @@ -1 +1 @@ -#define SERNO "20070530-3496" +#define SERNO "20070530-3498" diff --git a/src/s_newconf.c b/src/s_newconf.c index 66adbec..4b5e1e0 100644 --- a/src/s_newconf.c +++ b/src/s_newconf.c @@ -29,7 +29,7 @@ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE * POSSIBILITY OF SUCH DAMAGE. * - * $Id: s_newconf.c 3161 2007-01-25 07:23:01Z nenolod $ + * $Id: s_newconf.c 3508 2007-06-04 16:04:49Z jilles $ */ #include "stdinc.h" @@ -595,6 +595,7 @@ valid_wild_card_simple(const char *data) const char *p; char tmpch; int nonwild = 0; + int wild = 0; /* check the string for minimum number of nonwildcard chars */ p = data; @@ -604,9 +605,11 @@ valid_wild_card_simple(const char *data) /* found an escape, p points to the char after it, so skip * that and move on. */ - if(tmpch == '\\') + if(tmpch == '\\' && *p) { p++; + if(++nonwild >= ConfigFileEntry.min_nonwildcard_simple) + return 1; } else if(!IsMWildChar(tmpch)) { @@ -614,9 +617,12 @@ valid_wild_card_simple(const char *data) if(++nonwild >= ConfigFileEntry.min_nonwildcard_simple) return 1; } + else + wild++; } - return 0; + /* strings without wilds are also ok */ + return wild == 0; } time_t