[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]))
|