X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=cmd_neonserv_delban.c;h=ac8b6964b15ce62e27d8ccc91d30c40ef44011cd;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=b211a116f8dea5dd479c3565185e13fe401a3afb;hpb=f621224dd6b5e91acab1183e81e5d6976d4e1f8c;p=NeonServV5.git diff --git a/cmd_neonserv_delban.c b/cmd_neonserv_delban.c index b211a11..ac8b696 100644 --- a/cmd_neonserv_delban.c +++ b/cmd_neonserv_delban.c @@ -1,9 +1,11 @@ +#include "cmd_neonserv.h" + /* * argv[0] nick|*auth|*!*@mask */ -static CMD_BIND(neonserv_cmd_delban) { +CMD_BIND(neonserv_cmd_delban) { char hostmask_buffer[NICKLEN+USERLEN+HOSTLEN+3]; char *mask = make_banmask(argv[0], hostmask_buffer); int matching_bans = 0; @@ -16,11 +18,16 @@ static CMD_BIND(neonserv_cmd_delban) { return; } //check if the provided mask affects any existing bans - printf_mysql_query("SELECT `ban_mask`, `ban_id` FROM `bans` WHERE `ban_channel` = '%d'", chan->channel_id); + char nameBuf[20]; + printf_mysql_query("SELECT `ban_mask`, `ban_id`, `ban_timeout` FROM `bans` WHERE `ban_channel` = '%d'", chan->channel_id); res = mysql_use(); while ((row = mysql_fetch_row(res)) != NULL) { if(!match(mask, row[0])) { //remove the ban + if(strcmp(row[2], "0")) { + sprintf(nameBuf, "ban_%s", row[1]); + timeq_del_name(nameBuf); + } printf_mysql_query("DELETE FROM `bans` WHERE `ban_id` = '%s'", row[1]); matching_bans++; } @@ -28,6 +35,7 @@ static CMD_BIND(neonserv_cmd_delban) { if(matching_bans) { putsock(client, "MODE %s -b %s", chan->name, mask); reply(getTextBot(), user, "NS_DELBAN_DONE", mask, chan->name); + logEvent(event); } else reply(getTextBot(), user, "NS_DELBAN_FAIL", mask); }