diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/actions.c | 2 | ||||
-rw-r--r-- | src/channels.c | 6 | ||||
-rw-r--r-- | src/chanserv.c | 6 | ||||
-rw-r--r-- | src/core/bs_badwords.c | 2 | ||||
-rw-r--r-- | src/core/cs_access.c | 2 | ||||
-rw-r--r-- | src/core/cs_akick.c | 10 | ||||
-rw-r--r-- | src/core/cs_list.c | 4 | ||||
-rw-r--r-- | src/core/cs_xop.c | 2 | ||||
-rw-r--r-- | src/core/hs_list.c | 2 | ||||
-rw-r--r-- | src/core/ns_access.c | 4 | ||||
-rw-r--r-- | src/core/ns_list.c | 4 | ||||
-rw-r--r-- | src/core/os_admin.c | 2 | ||||
-rw-r--r-- | src/core/os_akill.c | 4 | ||||
-rw-r--r-- | src/core/os_chanlist.c | 2 | ||||
-rw-r--r-- | src/core/os_noop.c | 2 | ||||
-rw-r--r-- | src/core/os_oper.c | 2 | ||||
-rw-r--r-- | src/core/os_session.c | 4 | ||||
-rw-r--r-- | src/core/os_sgline.c | 4 | ||||
-rw-r--r-- | src/core/os_sqline.c | 4 | ||||
-rw-r--r-- | src/core/os_szline.c | 4 | ||||
-rw-r--r-- | src/core/os_userlist.c | 2 | ||||
-rw-r--r-- | src/language.c | 2 | ||||
-rw-r--r-- | src/misc.c | 28 | ||||
-rw-r--r-- | src/nickserv.c | 4 | ||||
-rw-r--r-- | src/operserv.c | 40 | ||||
-rw-r--r-- | src/process.c | 2 | ||||
-rw-r--r-- | src/sessions.c | 6 | ||||
-rw-r--r-- | src/users.c | 14 | ||||
-rw-r--r-- | src/wildcard.cpp | 162 |
29 files changed, 152 insertions, 180 deletions
diff --git a/src/actions.c b/src/actions.c index 6b96c66fa..f83b67160 100644 --- a/src/actions.c +++ b/src/actions.c @@ -95,7 +95,7 @@ void sqline(char *mask, char *reason) for (c = chanlist[i]; c; c = next) { next = c->next; - if (!match_wild_nocase(mask, c->name)) { + if (!Anope::Match(mask, c->name, false)) { continue; } for (cu = c->users; cu; cu = cunext) { diff --git a/src/channels.c b/src/channels.c index d7e97d62f..06eacb612 100644 --- a/src/channels.c +++ b/src/channels.c @@ -2154,13 +2154,13 @@ int entry_match(Entry * e, const char *nick, const char *user, const char *host, && (!user || stricmp(e->host, host) != 0)) return 0; if ((e->type & ENTRYTYPE_NICK_WILD) - && !match_wild_nocase(e->nick, nick)) + && !Anope::Match(e->nick, nick, false)) return 0; if ((e->type & ENTRYTYPE_USER_WILD) - && !match_wild_nocase(e->user, user)) + && !Anope::Match(e->user, user, false)) return 0; if ((e->type & ENTRYTYPE_HOST_WILD) - && !match_wild_nocase(e->host, host)) + && !Anope::Match(e->host, host, false)) return 0; return 1; diff --git a/src/chanserv.c b/src/chanserv.c index 393a5831b..26823a710 100644 --- a/src/chanserv.c +++ b/src/chanserv.c @@ -2202,11 +2202,11 @@ AutoKick *is_stuck(ChannelInfo * ci, const char *mask) || !(akick->flags & AK_STUCK)) continue; /* Example: mask = *!*@*.org and akick->u.mask = *!*@*.anope.org */ - if (match_wild_nocase(mask, akick->u.mask)) + if (Anope::Match(mask, akick->u.mask, false)) return akick; if (ircd->reversekickcheck) { /* Example: mask = *!*@irc.anope.org and akick->u.mask = *!*@*.anope.org */ - if (match_wild_nocase(akick->u.mask, mask)) + if (Anope::Match(akick->u.mask, mask, false)) return akick; } } @@ -2240,7 +2240,7 @@ void stick_mask(ChannelInfo * ci, AutoKick * akick) if (ircd->reversekickcheck) { /* If akick is wider than a ban already in place. Example: c->bans[i] = *!*@irc.epona.org and akick->u.mask = *!*@*.epona.org */ - if (match_wild_nocase(akick->u.mask, ban->mask)) + if (Anope::Match(akick->u.mask, ban->mask, false)) return; } } diff --git a/src/core/bs_badwords.c b/src/core/bs_badwords.c index 1b7007745..a342e0c09 100644 --- a/src/core/bs_badwords.c +++ b/src/core/bs_badwords.c @@ -44,7 +44,7 @@ class CommandBSBadwords : public Command if (!(ci->badwords[i].in_use)) continue; if (word && ci->badwords[i].word - && !match_wild_nocase(word, ci->badwords[i].word)) + && !Anope::Match(word, ci->badwords[i].word, false)) continue; badwords_list(u, i, ci, &sent_header); } diff --git a/src/core/cs_access.c b/src/core/cs_access.c index ec58b75ea..0d3bc9ea0 100644 --- a/src/core/cs_access.c +++ b/src/core/cs_access.c @@ -335,7 +335,7 @@ class CommandCSAccess : public Command } else { for (i = 0; i < ci->accesscount; i++) { if (nick && ci->access[i].nc - && !match_wild_nocase(nick, ci->access[i].nc->display)) + && !Anope::Match(nick, ci->access[i].nc->display, false)) continue; access_list(u, i, ci, &sent_header); } diff --git a/src/core/cs_akick.c b/src/core/cs_akick.c index a0efdc067..0f360f009 100644 --- a/src/core/cs_akick.c +++ b/src/core/cs_akick.c @@ -264,7 +264,7 @@ class CommandCSAKick : public Command if (na2->nc && ((na2->nc == ci->founder) || (get_access_nc(na2->nc, ci) >= get_access(u, ci)))) { snprintf(buf, BUFSIZE, "%s!%s", na2->nick, na2->last_usermask); - if (match_wild_nocase(mask, buf)) { + if (Anope::Match(mask, buf, false)) { notice_lang(s_ChanServ, u, PERMISSION_DENIED); delete [] mask; return MOD_CONT; @@ -536,10 +536,10 @@ class CommandCSAKick : public Command continue; if (mask) { if (!(akick->flags & AK_ISNICK) - && !match_wild_nocase(mask, akick->u.mask)) + && !Anope::Match(mask, akick->u.mask, false)) continue; if ((akick->flags & AK_ISNICK) - && !match_wild_nocase(mask, akick->u.nc->display)) + && !Anope::Match(mask, akick->u.nc->display, false)) continue; } akick_list(u, i, ci, &sent_header); @@ -565,10 +565,10 @@ class CommandCSAKick : public Command continue; if (mask) { if (!(akick->flags & AK_ISNICK) - && !match_wild_nocase(mask, akick->u.mask)) + && !Anope::Match(mask, akick->u.mask, false)) continue; if ((akick->flags & AK_ISNICK) - && !match_wild_nocase(mask, akick->u.nc->display)) + && !Anope::Match(mask, akick->u.nc->display, false)) continue; } akick_view(u, i, ci, &sent_header); diff --git a/src/core/cs_list.c b/src/core/cs_list.c index f4ccc843a..bb3244cc2 100644 --- a/src/core/cs_list.c +++ b/src/core/cs_list.c @@ -136,8 +136,8 @@ public: if ((stricmp(pattern, ci->name) == 0) || (stricmp(spattern, ci->name) == 0) - || match_wild_nocase(pattern, ci->name) - || match_wild_nocase(spattern, ci->name)) + || Anope::Match(pattern, ci->name, false) + || Anope::Match(spattern, ci->name, false)) { if ((((count + 1 >= from) && (count + 1 <= to)) || ((from == 0) && (to == 0))) diff --git a/src/core/cs_xop.c b/src/core/cs_xop.c index 569ea3cdc..2fa830bd2 100644 --- a/src/core/cs_xop.c +++ b/src/core/cs_xop.c @@ -354,7 +354,7 @@ class XOPBase : public Command { for (int i = 0; i < ci->accesscount; ++i) { - if (nick && ci->access[i].nc && !match_wild_nocase(nick, ci->access[i].nc->display)) + if (nick && ci->access[i].nc && !Anope::Match(nick, ci->access[i].nc->display, false)) continue; xop_list(u, i, ci, &sent_header, level, messages[XOP_LIST_HEADER]); } diff --git a/src/core/hs_list.c b/src/core/hs_list.c index 21ca61689..3dfa52506 100644 --- a/src/core/hs_list.c +++ b/src/core/hs_list.c @@ -94,7 +94,7 @@ class CommandHSList : public Command { if (key) { - if ((match_wild_nocase(key, current->nick) || match_wild_nocase(key, current->vHost)) && display_counter < NSListMax) + if ((Anope::Match(key, current->nick, false) || Anope::Match(key, current->vHost, false)) && display_counter < NSListMax) { ++display_counter; tm = localtime(¤t->time); diff --git a/src/core/ns_access.c b/src/core/ns_access.c index e8e43b298..f1a1749d1 100644 --- a/src/core/ns_access.c +++ b/src/core/ns_access.c @@ -49,7 +49,7 @@ class CommandNSAccess : public Command notice_lang(s_NickServ, u, NICK_ACCESS_LIST_X, params[1].c_str()); for (access = nc->access, i = 0; i < nc->accesscount; ++access, ++i) { - if (mask && !match_wild(mask, *access)) + if (mask && !Anope::Match(mask, *access, true)) continue; u->SendMessage(s_NickServ, " %s", *access); } @@ -143,7 +143,7 @@ class CommandNSAccess : public Command notice_lang(s_NickServ, u, NICK_ACCESS_LIST); for (access = nc->access, i = 0; i < nc->accesscount; ++access, ++i) { - if (mask && !match_wild(mask, *access)) + if (mask && !Anope::Match(mask, *access, true)) continue; u->SendMessage(s_NickServ, " %s", *access); } diff --git a/src/core/ns_list.c b/src/core/ns_list.c index 407d1bcd1..7ab2639de 100644 --- a/src/core/ns_list.c +++ b/src/core/ns_list.c @@ -143,7 +143,7 @@ class CommandNSList : public Command * Instead we build a nice nick!user@host buffer to compare. * The output is then generated separately. -TheShadow */ snprintf(buf, sizeof(buf), "%s!%s", na->nick, na->last_usermask && !(na->status & NS_FORBIDDEN) ? na->last_usermask : "*@*"); - if (!stricmp(pattern, na->nick) || match_wild_nocase(pattern, buf)) + if (!stricmp(pattern, na->nick) || Anope::Match(pattern, buf, false)) { if (((count + 1 >= from && count + 1 <= to) || (!from && !to)) && ++nnicks <= NSListMax) { @@ -175,7 +175,7 @@ class CommandNSList : public Command for (nr = nrlists[i]; nr; nr = nr->next) { snprintf(buf, sizeof(buf), "%s!*@*", nr->nick); - if (!stricmp(pattern, nr->nick) || match_wild_nocase(pattern, buf)) + if (!stricmp(pattern, nr->nick) || Anope::Match(pattern, buf, false)) { if (++nnicks <= NSListMax) { diff --git a/src/core/os_admin.c b/src/core/os_admin.c index 06391e498..9dc103b99 100644 --- a/src/core/os_admin.c +++ b/src/core/os_admin.c @@ -180,7 +180,7 @@ class CommandOSAdmin : public Command int i; for (i = 0; i < servadmins.count; ++i) { - if (!stricmp(nick, (static_cast<NickCore *>(servadmins.list[i]))->display) || match_wild_nocase(nick, (static_cast<NickCore *>(servadmins.list[i]))->display)) + if (!stricmp(nick, (static_cast<NickCore *>(servadmins.list[i]))->display) || Anope::Match(nick, (static_cast<NickCore *>(servadmins.list[i]))->display, false)) admin_list(i + 1, static_cast<NickCore *>(servadmins.list[i]), u, &sent_header); } diff --git a/src/core/os_akill.c b/src/core/os_akill.c index 7d5947db7..8f12e2ff0 100644 --- a/src/core/os_akill.c +++ b/src/core/os_akill.c @@ -225,7 +225,7 @@ class CommandOSAKill : public Command for (i = 0; i < akills.count; ++i) { snprintf(amask, sizeof(amask), "%s@%s", (static_cast<Akill *>(akills.list[i]))->user, (static_cast<Akill *>(akills.list[i]))->host); - if (!stricmp(mask, amask) || match_wild_nocase(mask, amask)) + if (!stricmp(mask, amask) || Anope::Match(mask, amask, false)) akill_list(i + 1, static_cast<Akill *>(akills.list[i]), u, &sent_header); } @@ -268,7 +268,7 @@ class CommandOSAKill : public Command for (i = 0; i < akills.count; ++i) { snprintf(amask, sizeof(amask), "%s@%s", (static_cast<Akill *>(akills.list[i]))->user, (static_cast<Akill *>(akills.list[i]))->host); - if (!stricmp(mask, amask) || match_wild_nocase(mask, amask)) + if (!stricmp(mask, amask) || Anope::Match(mask, amask, false)) akill_view(i + 1, static_cast<Akill *>(akills.list[i]), u, &sent_header); } diff --git a/src/core/os_chanlist.c b/src/core/os_chanlist.c index d86beaeed..abb5deecd 100644 --- a/src/core/os_chanlist.c +++ b/src/core/os_chanlist.c @@ -59,7 +59,7 @@ class CommandOSChanList : public Command { for (c = chanlist[i]; c; c = c->next) { - if (pattern && !match_wild_nocase(pattern, c->name)) + if (pattern && !Anope::Match(pattern, c->name, false)) continue; if (modes && !(c->mode & modes)) continue; diff --git a/src/core/os_noop.c b/src/core/os_noop.c index cf1bdf23e..de49185f1 100644 --- a/src/core/os_noop.c +++ b/src/core/os_noop.c @@ -47,7 +47,7 @@ class CommandOSNOOP : public Command for (u2 = firstuser(); u2; u2 = u3) { u3 = nextuser(); - if (u2 && is_oper(u2) && u2->server->name && match_wild(server, u2->server->name)) + if (u2 && is_oper(u2) && u2->server->name && Anope::Match(server, u2->server->name, true)) kill_user(s_OperServ, u2->nick, reason); } } diff --git a/src/core/os_oper.c b/src/core/os_oper.c index 7ddceb257..ce2ab8158 100644 --- a/src/core/os_oper.c +++ b/src/core/os_oper.c @@ -187,7 +187,7 @@ class CommandOSOper : public Command for (i = 0; i < servopers.count; ++i) { - if (!stricmp(nick, (static_cast<NickCore *>(servopers.list[i]))->display) || match_wild_nocase(nick, (static_cast<NickCore *>(servopers.list[i]))->display)) + if (!stricmp(nick, (static_cast<NickCore *>(servopers.list[i]))->display) || Anope::Match(nick, (static_cast<NickCore *>(servopers.list[i]))->display, false)) oper_list(i + 1, static_cast<NickCore *>(servopers.list[i]), u, &sent_header); } diff --git a/src/core/os_session.c b/src/core/os_session.c index a1c19113e..ac6910c36 100644 --- a/src/core/os_session.c +++ b/src/core/os_session.c @@ -382,7 +382,7 @@ class CommandOSException : public Command { for (i = 0; i < nexceptions; ++i) { - if (!mask || match_wild_nocase(mask, exceptions[i].mask)) + if (!mask || Anope::Match(mask, exceptions[i].mask, false)) exception_list(u, i, &sent_header); } } @@ -404,7 +404,7 @@ class CommandOSException : public Command { for (i = 0; i < nexceptions; ++i) { - if (!mask || match_wild_nocase(mask, exceptions[i].mask)) + if (!mask || Anope::Match(mask, exceptions[i].mask, false)) exception_view(u, i, &sent_header); } } diff --git a/src/core/os_sgline.c b/src/core/os_sgline.c index 9bea10147..e75b256a4 100644 --- a/src/core/os_sgline.c +++ b/src/core/os_sgline.c @@ -222,7 +222,7 @@ class CommandOSSGLine : public Command for (i = 0; i < sglines.count; ++i) { amask = (static_cast<SXLine *>(sglines.list[i]))->mask; - if (!stricmp(mask, amask) || match_wild_nocase(mask, amask)) + if (!stricmp(mask, amask) || Anope::Match(mask, amask, false)) sgline_list(i + 1, static_cast<SXLine *>(sglines.list[i]), u, &sent_header); } @@ -265,7 +265,7 @@ class CommandOSSGLine : public Command for (i = 0; i < sglines.count; ++i) { amask = (static_cast<SXLine *>(sglines.list[i]))->mask; - if (!stricmp(mask, amask) || match_wild_nocase(mask, amask)) + if (!stricmp(mask, amask) || Anope::Match(mask, amask, false)) sgline_view(i + 1, static_cast<SXLine *>(sglines.list[i]), u, &sent_header); } diff --git a/src/core/os_sqline.c b/src/core/os_sqline.c index a1603008e..1f06c3174 100644 --- a/src/core/os_sqline.c +++ b/src/core/os_sqline.c @@ -209,7 +209,7 @@ class CommandOSSQLine : public Command for (i = 0; i < sqlines.count; ++i) { amask = (static_cast<SXLine *>(sqlines.list[i]))->mask; - if (!stricmp(mask, amask) || match_wild_nocase(mask, amask)) + if (!stricmp(mask, amask) || Anope::Match(mask, amask, false)) sqline_list(i + 1, static_cast<SXLine *>(sqlines.list[i]), u, &sent_header); } @@ -252,7 +252,7 @@ class CommandOSSQLine : public Command for (i = 0; i < sqlines.count; ++i) { amask = (static_cast<SXLine *>(sqlines.list[i]))->mask; - if (!stricmp(mask, amask) || match_wild_nocase(mask, amask)) + if (!stricmp(mask, amask) || Anope::Match(mask, amask, false)) sqline_view(i + 1, static_cast<SXLine *>(sqlines.list[i]), u, &sent_header); } diff --git a/src/core/os_szline.c b/src/core/os_szline.c index 406db111f..9ca16a127 100644 --- a/src/core/os_szline.c +++ b/src/core/os_szline.c @@ -210,7 +210,7 @@ class CommandOSSZLine : public Command for (i = 0; i < szlines.count; ++i) { amask = (static_cast<SXLine *>(szlines.list[i]))->mask; - if (!stricmp(mask, amask) || match_wild_nocase(mask, amask)) + if (!stricmp(mask, amask) || Anope::Match(mask, amask, false)) szline_list(i + 1, static_cast<SXLine *>(szlines.list[i]), u, &sent_header); } @@ -251,7 +251,7 @@ class CommandOSSZLine : public Command for (i = 0; i < szlines.count; ++i) { amask = (static_cast<SXLine *>(szlines.list[i]))->mask; - if (!stricmp(mask, amask) || match_wild_nocase(mask, amask)) + if (!stricmp(mask, amask) || Anope::Match(mask, amask, false)) szline_view(i + 1, static_cast<SXLine *>(szlines.list[i]), u, &sent_header); } diff --git a/src/core/os_userlist.c b/src/core/os_userlist.c index 7d85e641c..5d6bb2504 100644 --- a/src/core/os_userlist.c +++ b/src/core/os_userlist.c @@ -63,7 +63,7 @@ class CommandOSUserList : public Command if (pattern) { snprintf(mask, sizeof(mask), "%s!%s@%s", u2->nick, u2->GetIdent().c_str(), u2->GetDisplayedHost().c_str()); - if (!match_wild_nocase(pattern, mask)) + if (!Anope::Match(pattern, mask, false)) continue; if (modes && !(u2->mode & modes)) continue; diff --git a/src/language.c b/src/language.c index 13df53807..85d50fa77 100644 --- a/src/language.c +++ b/src/language.c @@ -130,7 +130,7 @@ static void load_lang(int index, const char *filename) } else { langtexts[index][i] = new char[len + 1]; fseek(f, pos, SEEK_SET); - if (fread(langtexts[index][i], 1, len, f) != len) { + if ((int32)fread(langtexts[index][i], 1, len, f) != len) { alog("Failed to read string %d in language %d (%s)", i, index, filename); while (--i >= 0) { diff --git a/src/misc.c b/src/misc.c index 51c6dac3e..f5b95c4f6 100644 --- a/src/misc.c +++ b/src/misc.c @@ -211,34 +211,6 @@ const char *merge_args(int argc, char **argv) /*************************************************************************/ /** - * match_wild: Case Senstive wild card search - * @param pattern To be matched - * @param str String in which the pattern is to be matched - * @return 1 if the string matches the pattern, 0 if not. - * NOTE: Deprecated by Anope::Match(). - */ -int match_wild(const char *pattern, const char *str) -{ - return Anope::Match(pattern, str, true); -} - -/*************************************************************************/ - -/** - * match_wild: Case Insenstive wild card search - * @param pattern To be matched - * @param str String in which the pattern is to be matched - * @return 1 if the string matches the pattern, 0 if not. - * NOTE: Deprecated by Anope::Match(). - */ -int match_wild_nocase(const char *pattern, const char *str) -{ - return Anope::Match(pattern, str, false); -} - -/*************************************************************************/ - -/** * Process a string containing a number/range list in the form * "n1[-n2][,n3[-n4]]...", calling a caller-specified routine for each * number in the list. If the callback returns -1, stop immediately. diff --git a/src/nickserv.c b/src/nickserv.c index 92a91a6b3..fda5623d5 100644 --- a/src/nickserv.c +++ b/src/nickserv.c @@ -864,8 +864,8 @@ int is_on_access(User * u, NickCore * nc) for (i = 0; i < nc->accesscount; i++) { - if (match_wild_nocase(nc->access[i], buf) - || (ircd->vhost ? match_wild_nocase(nc->access[i], buf2) : 0)) + if (Anope::Match(nc->access[i], buf, false) + || (ircd->vhost ? Anope::Match(nc->access[i], buf2, false) : 0)) { delete [] buf; if (ircd->vhost) diff --git a/src/operserv.c b/src/operserv.c index b0e0d0f0c..c43d0c9ff 100644 --- a/src/operserv.c +++ b/src/operserv.c @@ -542,7 +542,7 @@ int add_akill(User * u, const char *mask, const char *by, const time_t expires, } } - if (match_wild_nocase(amask, mask) + if (Anope::Match(amask, mask,false) && (entry->expires >= expires || entry->expires == 0)) { if (u) notice_lang(s_OperServ, u, OPER_AKILL_ALREADY_COVERED, @@ -550,7 +550,7 @@ int add_akill(User * u, const char *mask, const char *by, const time_t expires, return -1; } - if (match_wild_nocase(mask, amask) + if (Anope::Match(mask, amask, false) && (entry->expires <= expires || expires == 0)) { slist_delete(&akills, i); deleted++; @@ -628,16 +628,16 @@ int check_akill(const char *nick, const char *username, const char *host, ak = static_cast<Akill *>(akills.list[i]); if (!ak) continue; - if (match_wild_nocase(ak->user, username) - && match_wild_nocase(ak->host, host)) { + if (Anope::Match(ak->user, username, false) + && Anope::Match(ak->host, host, false)) { ircdproto->SendAkill(ak->user, ak->host, ak->by, ak->seton, ak->expires, ak->reason); return 1; } if (ircd->vhost) { if (vhost) { - if (match_wild_nocase(ak->user, username) - && match_wild_nocase(ak->host, vhost)) { + if (Anope::Match(ak->user, username, false) + && Anope::Match(ak->host, vhost, false)) { ircdproto->SendAkill(ak->user, ak->host, ak->by, ak->seton, ak->expires, ak->reason); return 1; @@ -646,8 +646,8 @@ int check_akill(const char *nick, const char *username, const char *host, } if (ircd->nickip) { if (ip) { - if (match_wild_nocase(ak->user, username) - && match_wild_nocase(ak->host, ip)) { + if (Anope::Match(ak->user, username, false) + && Anope::Match(ak->host, ip, false)) { ircdproto->SendAkill(ak->user, ak->host, ak->by, ak->seton, ak->expires, ak->reason); return 1; @@ -766,7 +766,7 @@ int add_sgline(User * u, const char *mask, const char *by, time_t expires, } } - if (match_wild_nocase(entry->mask, mask) + if (Anope::Match(entry->mask, mask, false) && (entry->expires >= expires || entry->expires == 0)) { if (u) notice_lang(s_OperServ, u, OPER_SGLINE_ALREADY_COVERED, @@ -774,7 +774,7 @@ int add_sgline(User * u, const char *mask, const char *by, time_t expires, return -1; } - if (match_wild_nocase(mask, entry->mask) + if (Anope::Match(mask, entry->mask, false) && (entry->expires <= expires || expires == 0)) { slist_delete(&sglines, i); deleted++; @@ -812,7 +812,7 @@ int add_sgline(User * u, const char *mask, const char *by, time_t expires, while (u2) { next = nextuser(); if (!is_oper(u2)) { - if (match_wild_nocase(entry->mask, u2->realname)) { + if (Anope::Match(entry->mask, u2->realname, false)) { kill_user(ServerName, u2->nick, buf); } } @@ -837,7 +837,7 @@ int check_sgline(const char *nick, const char *realname) if (!sx) continue; - if (match_wild_nocase(sx->mask, realname)) { + if (Anope::Match(sx->mask, realname, false)) { ircdproto->SendSGLine(sx->mask, sx->reason); /* We kill nick since s_sgline can't */ ircdproto->SendSVSKill(ServerName, nick, "G-Lined: %s", sx->reason); @@ -953,7 +953,7 @@ int add_sqline(User * u, const char *mask, const char *by, time_t expires, } } - if (match_wild_nocase(entry->mask, mask) + if (Anope::Match(entry->mask, mask, false) && (entry->expires >= expires || entry->expires == 0)) { if (u) notice_lang(s_OperServ, u, OPER_SQLINE_ALREADY_COVERED, @@ -961,7 +961,7 @@ int add_sqline(User * u, const char *mask, const char *by, time_t expires, return -1; } - if (match_wild_nocase(mask, entry->mask) + if (Anope::Match(mask, entry->mask, false) && (entry->expires <= expires || expires == 0)) { slist_delete(&sqlines, i); deleted++; @@ -999,7 +999,7 @@ int add_sqline(User * u, const char *mask, const char *by, time_t expires, while (u2) { next = nextuser(); if (!is_oper(u2)) { - if (match_wild_nocase(entry->mask, u2->nick)) { + if (Anope::Match(entry->mask, u2->nick, false)) { kill_user(ServerName, u2->nick, buf); } } @@ -1031,7 +1031,7 @@ int check_sqline(const char *nick, int nick_change) continue; } - if (match_wild_nocase(sx->mask, nick)) { + if (Anope::Match(sx->mask, nick, false)) { sqline(sx->mask, sx->reason); /* We kill nick since s_sqline can't */ snprintf(reason, sizeof(reason), "Q-Lined: %s", sx->reason); @@ -1059,7 +1059,7 @@ int check_chan_sqline(const char *chan) if (*sx->mask != '#') continue; - if (match_wild_nocase(sx->mask, chan)) { + if (Anope::Match(sx->mask, chan, false)) { sqline(sx->mask, sx->reason); return 1; } @@ -1167,14 +1167,14 @@ int add_szline(User * u, const char *mask, const char *by, time_t expires, } } - if (match_wild_nocase(entry->mask, mask)) { + if (Anope::Match(entry->mask, mask, false)) { if (u) notice_lang(s_OperServ, u, OPER_SZLINE_ALREADY_COVERED, mask, entry->mask); return -1; } - if (match_wild_nocase(mask, entry->mask)) { + if (Anope::Match(mask, entry->mask, false)) { slist_delete(&szlines, i); deleted++; } @@ -1227,7 +1227,7 @@ int check_szline(const char *nick, char *ip) continue; } - if (match_wild_nocase(sx->mask, ip)) { + if (Anope::Match(sx->mask, ip, false)) { ircdproto->SendSZLine(sx->mask, sx->reason, sx->by); return 1; } diff --git a/src/process.c b/src/process.c index 0590513e8..283f02903 100644 --- a/src/process.c +++ b/src/process.c @@ -135,7 +135,7 @@ IgnoreData *get_ignore(const char *nick) } else snprintf(tmp, sizeof(tmp), "%s!*@*", nick); for (ign = ignore; ign; ign = ign->next) - if (match_wild_nocase(ign->mask, tmp)) + if (Anope::Match(ign->mask, tmp, false)) break; } /* Check whether the entry has timed out */ diff --git a/src/sessions.c b/src/sessions.c index ea225d888..b743ece60 100644 --- a/src/sessions.c +++ b/src/sessions.c @@ -280,7 +280,7 @@ Exception *find_host_exception(const char *host) int i; for (i = 0; i < nexceptions; i++) { - if ((match_wild_nocase(exceptions[i].mask, host))) { + if ((Anope::Match(exceptions[i].mask, host, false))) { return &exceptions[i]; } } @@ -295,9 +295,9 @@ Exception *find_hostip_exception(const char *host, const char *hostip) int i; for (i = 0; i < nexceptions; i++) { - if ((match_wild_nocase(exceptions[i].mask, host)) + if ((Anope::Match(exceptions[i].mask, host, false)) || ((ircd->nickip && hostip) - && (match_wild_nocase(exceptions[i].mask, hostip)))) { + && (Anope::Match(exceptions[i].mask, hostip, false)))) { return &exceptions[i]; } } diff --git a/src/users.c b/src/users.c index 4be186909..3c66fedaf 100644 --- a/src/users.c +++ b/src/users.c @@ -928,14 +928,14 @@ int match_usermask(const char *mask, User * user) } if (nick) { - result = match_wild_nocase(nick, user->nick) - && match_wild_nocase(username, user->GetIdent().c_str()) - && (match_wild_nocase(host, user->host) - || match_wild_nocase(host, user->vhost)); + result = Anope::Match(nick, user->nick, false) + && Anope::Match(username, user->GetIdent().c_str(), false) + && (Anope::Match(host, user->host, false) + || Anope::Match(host, user->vhost, false)); } else { - result = match_wild_nocase(username, user->GetIdent().c_str()) - && (match_wild_nocase(host, user->host) - || match_wild_nocase(host, user->vhost)); + result = Anope::Match(username, user->GetIdent().c_str(), false) + && (Anope::Match(host, user->host, false) + || Anope::Match(host, user->vhost, false)); } delete [] mask2; diff --git a/src/wildcard.cpp b/src/wildcard.cpp index 65916d038..b66b8b29c 100644 --- a/src/wildcard.cpp +++ b/src/wildcard.cpp @@ -1,81 +1,81 @@ -#include "services.h"
-
-static bool match_internal(const unsigned char *str, const unsigned char *mask, bool case_sensitive)
-{
- unsigned char *cp = NULL, *mp = NULL;
- unsigned char* string = (unsigned char*)str;
- unsigned char* wild = (unsigned char*)mask;
-
- while ((*string) && (*wild != '*'))
- {
- if (case_sensitive)
- {
- if (*wild != *string && *wild != '?')
- return false;
- }
- else
- {
- if (tolower(*wild) != tolower(*string) && *wild != '?')
- return false;
- }
-
- wild++;
- string++;
- }
-
- while (*string)
- {
- if (*wild == '*')
- {
- if (!*++wild)
- {
- return 1;
- }
-
- mp = wild;
- cp = string+1;
- }
- else
- {
- if (case_sensitive)
- {
- if (*wild == *string || *wild == '?')
- {
- wild++;
- string++;
- }
- else
- {
- wild = mp;
- string = cp++;
- }
- }
- else
- {
- if (tolower(*wild) == tolower(*string) || *wild == '?')
- {
- wild++;
- string++;
- }
- else
- {
- wild = mp;
- string = cp++;
- }
- }
- }
-
- }
-
- while (*wild == '*')
- {
- wild++;
- }
-
- return !*wild;
-}
-
-CoreExport bool Anope::Match(const std::string &str, const std::string &mask, bool case_sensitive)
-{
- return match_internal((const unsigned char *)str.c_str(), (const unsigned char *)mask.c_str(), case_sensitive);
-}
+#include "services.h" + +static bool match_internal(const unsigned char *str, const unsigned char *mask, bool case_sensitive) +{ + unsigned char *cp = NULL, *mp = NULL; + unsigned char* string = (unsigned char*)str; + unsigned char* wild = (unsigned char*)mask; + + while ((*string) && (*wild != '*')) + { + if (case_sensitive) + { + if (*wild != *string && *wild != '?') + return false; + } + else + { + if (tolower(*wild) != tolower(*string) && *wild != '?') + return false; + } + + wild++; + string++; + } + + while (*string) + { + if (*wild == '*') + { + if (!*++wild) + { + return 1; + } + + mp = wild; + cp = string+1; + } + else + { + if (case_sensitive) + { + if (*wild == *string || *wild == '?') + { + wild++; + string++; + } + else + { + wild = mp; + string = cp++; + } + } + else + { + if (tolower(*wild) == tolower(*string) || *wild == '?') + { + wild++; + string++; + } + else + { + wild = mp; + string = cp++; + } + } + } + + } + + while (*wild == '*') + { + wild++; + } + + return !*wild; +} + +CoreExport bool Anope::Match(const std::string &str, const std::string &mask, bool case_sensitive) +{ + return match_internal((const unsigned char *)str.c_str(), (const unsigned char *)mask.c_str(), case_sensitive); +} |