From da9c3e6d0d9d69c0e5fa7f64f0fe9a5dab877831 Mon Sep 17 00:00:00 2001 From: pk910 Date: Tue, 23 Oct 2012 23:28:58 +0200 Subject: [PATCH] allow any removals of bot matching bans (even if user has no access to remove bans) --- src/modules/NeonServ.mod/event_neonserv_mode.c | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) 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; -- 2.20.1