소스 검색

* More cidr support (some exempts/ban checking)

svn: 1979
Bryan Drewery 21 년 전
부모
커밋
07e00c92f1
1개의 변경된 파일2개의 추가작업 그리고 2개의 파일을 삭제
  1. 2 2
      src/mod/irc.mod/chan.c

+ 2 - 2
src/mod/irc.mod/chan.c

@@ -598,7 +598,7 @@ static void refresh_ban_kick(struct chanset_t *chan, char *user, char *nick)
      in second cycle. */
   for (int cycle = 0; cycle < 2; cycle++) {
     for (b = cycle ? chan->bans : global_bans; b; b = b->next) {
-      if (wild_match(b->mask, user)) {
+      if (wild_match(b->mask, user) || match_dir(b->mask, user)) {
 	struct flag_record	fr = {FR_GLOBAL | FR_CHAN, 0, 0, 0 };
 	char c[512] = "";		/* The ban comment.	*/
 	char s[UHOSTLEN] = "";
@@ -635,7 +635,7 @@ static void refresh_exempt(struct chanset_t *chan, char *user)
      in second cycle. */
   for (int cycle = 0; cycle < 2; cycle++) {
     for (e = cycle ? chan->exempts : global_exempts; e; e = e->next) {
-      if (wild_match(user, e->mask) || wild_match(e->mask,user)) {
+      if (wild_match(user, e->mask) || wild_match(e->mask, user) || match_cidr(e->mask, user)) {
         for (b = chan->channel.ban; b && b->mask[0]; b = b->next) {
           if (wild_match(b->mask, user) || wild_match(user, b->mask)) {
             if (e->lastactive < now - 60 && !isexempted(chan, e->mask)) {