[srvx-commits] CVS: services/src gline.c,1.37,1.38 gline.h,1.17,1.18 opserv.c,1.345,1.346
Brought to you by:
entrope
From: Entrope <en...@us...> - 2003-10-12 19:40:04
|
Update of /cvsroot/srvx/services/src In directory sc8-pr-cvs1:/tmp/cvs-serv9390/src Modified Files: gline.c gline.h opserv.c Log Message: extend badchan support to treat badchans as unregisterable Index: gline.c =================================================================== RCS file: /cvsroot/srvx/services/src/gline.c,v retrieving revision 1.37 retrieving revision 1.38 diff -C2 -r1.37 -r1.38 *** gline.c 12 Oct 2003 19:20:58 -0000 1.37 --- gline.c 12 Oct 2003 19:39:59 -0000 1.38 *************** *** 155,158 **** --- 155,181 ---- } + struct gline * + gline_find(const char *target) + { + struct gline *res; + dict_iterator_t it; + + res = dict_find(gline_dict, target, NULL); + if (res) + return res; + /* Stock ircu requires BADCHANs to match exactly. */ + if (target[0] == '#') + return NULL; + else { + /* Otherwise, do an obnoxiously long search. */ + for (it = dict_first(gline_dict); it; it = iter_next(it)) { + res = iter_data(it); + if (match_ircglob(target, res->target)) + return res; + } + } + return NULL; + } + static int gline_refresh_helper(UNUSED_ARG(void *key), void *data, void *extra) Index: gline.h =================================================================== RCS file: /cvsroot/srvx/services/src/gline.h,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -r1.17 -r1.18 *** gline.h 7 Jul 2003 16:29:33 -0000 1.17 --- gline.h 12 Oct 2003 19:39:59 -0000 1.18 *************** *** 44,47 **** --- 44,48 ---- void gline_init(void); struct gline *gline_add(const char *issuer, const char *target, unsigned long duration, const char *reason, time_t issued, int announce); + struct gline *gline_find(const char *target); int gline_remove(const char *target, int announce); void gline_refresh_server(struct server *srv); Index: opserv.c =================================================================== RCS file: /cvsroot/srvx/services/src/opserv.c,v retrieving revision 1.345 retrieving revision 1.346 diff -C2 -r1.345 -r1.346 *** opserv.c 12 Oct 2003 19:20:58 -0000 1.345 --- opserv.c 12 Oct 2003 19:39:59 -0000 1.346 *************** *** 1769,1772 **** --- 1769,1775 ---- return 0; + if (gline_find(name)) + return 1; + for (found=0; found<opserv_bad_words->used; ++found) if (irccasestr(name, opserv_bad_words->list[found])) |