diff options
Diffstat (limited to 'src/mode.cpp')
-rw-r--r-- | src/mode.cpp | 96 |
1 files changed, 0 insertions, 96 deletions
diff --git a/src/mode.cpp b/src/mode.cpp index 8125f07b3..43e3b120e 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -382,102 +382,6 @@ char* ModeParser::TakeVoice(userrec *user,char *dest,chanrec *chan,int status) return NULL; } -char* ModeParser::AddBan(userrec *user,char *dest,chanrec *chan,int status) -{ - BanItem b; - int toomanyexclamation = 0; - int toomanyat = 0; - - if ((!user) || (!dest) || (!chan) || (!*dest)) - { - log(DEFAULT,"*** BUG *** AddBan was given an invalid parameter"); - return NULL; - } - - for (char* i = dest; *i; i++) - { - if ((*i < 32) || (*i > 126)) - { - return NULL; - } - else if (*i == '!') - { - toomanyexclamation++; - } - else if (*i == '@') - { - toomanyat++; - } - } - - if (toomanyexclamation != 1 || toomanyat != 1) - /* - * this stops sillyness like n!u!u!u@h, though note that most - * ircds don't actually verify banmask validity. --w00t - */ - return NULL; - - long maxbans = GetMaxBans(chan->name); - if ((unsigned)chan->bans.size() > (unsigned)maxbans) - { - WriteServ(user->fd,"478 %s %s :Channel ban list for %s is full (maximum entries for this channel is %d)",user->nick, chan->name,chan->name,maxbans); - return NULL; - } - - log(DEBUG,"AddBan: %s %s",chan->name,user->nick); - - int MOD_RESULT = 0; - FOREACH_RESULT(I_OnAddBan,OnAddBan(user,chan,dest)); - if (MOD_RESULT) - return NULL; - - TidyBan(dest); - for (BanList::iterator i = chan->bans.begin(); i != chan->bans.end(); i++) - { - if (!strcasecmp(i->data,dest)) - { - // dont allow a user to set the same ban twice - return NULL; - } - } - - b.set_time = TIME; - strlcpy(b.data,dest,MAXBUF); - if (*user->nick) - { - strlcpy(b.set_by,user->nick,NICKMAX-1); - } - else - { - strlcpy(b.set_by,Config->ServerName,NICKMAX-1); - } - chan->bans.push_back(b); - return dest; -} - -char* ModeParser::TakeBan(userrec *user,char *dest,chanrec *chan,int status) -{ - if ((!user) || (!dest) || (!chan) || (!*dest)) { - log(DEFAULT,"*** BUG *** TakeBan was given an invalid parameter"); - return 0; - } - - log(DEBUG,"del_ban: %s %s",chan->name,user->nick); - for (BanList::iterator i = chan->bans.begin(); i != chan->bans.end(); i++) - { - if (!strcasecmp(i->data,dest)) - { - int MOD_RESULT = 0; - FOREACH_RESULT(I_OnDelBan,OnDelBan(user,chan,dest)); - if (MOD_RESULT) - return NULL; - chan->bans.erase(i); - return dest; - } - } - return NULL; -} - void ModeParser::Process(char **parameters, int pcnt, userrec *user, bool servermode) { std::string target = parameters[0]; |