From: pk910 Date: Tue, 23 Oct 2012 21:28:58 +0000 (+0200) Subject: allow any removals of bot matching bans (even if user has no access to remove bans) X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=commitdiff_plain;h=da9c3e6d0d9d69c0e5fa7f64f0fe9a5dab877831 allow any removals of bot matching bans (even if user has no access to remove bans) --- diff --git a/src/modules/NeonServ.mod/event_neonserv_mode.c b/src/modules/NeonServ.mod/event_neonserv_mode.c index 7926493..87d4495 100644 --- a/src/modules/NeonServ.mod/event_neonserv_mode.c +++ b/src/modules/NeonServ.mod/event_neonserv_mode.c @@ -202,8 +202,22 @@ static void neonserv_event_mode_async1(struct ClientSocket *client, struct UserN db_canban = -1; } if(db_canban == -1) { - if(!neonserv_cmd_mode_botwar_detect(client, user, chan, &botwar_detect_executed)) + if(!neonserv_cmd_mode_botwar_detect(client, user, chan, &botwar_detect_executed)) { + if(!add) { + //check if a user just removed a bot ban + for(chanuser = getChannelUsers(chan, NULL); chanuser; chanuser = getChannelUsers(chan, chanuser)) { + cuser = chanuser->user; + sprintf(usermask, "%s!%s@%s", cuser->nick, cuser->ident, cuser->host); + if(!match(carg, usermask) && isBot(cuser)) { + skip = 1; + break; + } + } + if(skip) + break; + } modeBufferSet(modeBuf, !add, modes[i], carg); + } if(uaccess < db_getop) deop_user = 1; break;