[srvx-commits] CVS: services/src tools.c,1.73.2.25,1.73.2.26
Brought to you by:
entrope
From: Entrope <en...@us...> - 2001-08-16 03:15:55
|
Update of /cvsroot/srvx/services/src In directory usw-pr-cvs1:/tmp/cvs-serv15164/src Modified Files: Tag: rel-1_0 tools.c Log Message: do ircu-style ip mask matching, rather than network-style ip mask matching Index: tools.c =================================================================== RCS file: /cvsroot/srvx/services/src/tools.c,v retrieving revision 1.73.2.25 retrieving revision 1.73.2.26 diff -C2 -r1.73.2.25 -r1.73.2.26 *** tools.c 2001/08/14 15:31:38 1.73.2.25 --- tools.c 2001/08/16 03:15:52 1.73.2.26 *************** *** 505,514 **** if (isdigit(*glob) && !glob[strspn(glob, "0123456789./*?")]) { /* Looks like an IP-based mask */ ! unsigned long addr, mask; ! if (!parse_ipmask(glob, &addr, &mask)) { ! log(MAIN_LOG, LOG_WARNING, "Glob \"%s\" looked like it had an IP hostmask, but parse_ipmask failed\n", glob); ! return 0; ! } ! return !((addr ^ user->ip) & mask); } else { /* The host part of the mask isn't IP-based */ --- 505,511 ---- if (isdigit(*glob) && !glob[strspn(glob, "0123456789./*?")]) { /* Looks like an IP-based mask */ ! unsigned char userip[20]; ! sprintf(userip, "%ld.%ld.%ld.%ld", (user->ip >> 24) & 255, (user->ip >> 16) & 255, (user->ip >> 8) & 255, user->ip & 255); ! return match_ircglob(userip, glob); } else { /* The host part of the mask isn't IP-based */ |