int extban_moder_is_banned(aClient *sptr, aChannel *chptr, char *banin, int type) { char *ban = banin+3; if (!match_esc(ban, sptr->info)) return 1; return 0; }
int extban_modec_is_banned(aClient *sptr, aChannel *chptr, char *ban, int type) { Membership *lp; char *p = ban+3, symbol = '\0'; if (*p != '#') { symbol = *p; p++; } for (lp = sptr->user->channel; lp; lp = lp->next) { if (!match_esc(p, lp->chptr->chname)) { /* Channel matched, check symbol if needed (+/%/@/etc) */ if (symbol) { if (extban_modec_compareflags(symbol, lp->flags)) return 1; } else return 1; } } return 0; }
/* match_chan() * * The match_esc() function doing channel prefix auto-escape, * ie. mask: #blah*blah is seen like \#blah*blah */ int match_chan(const char *mask, const char *name) { if (*mask == '#') { if (*name != '#') return 0; ++name, ++mask; } return match_esc(mask, name); }