X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=cmd_neonserv_delban.c;h=ac8b6964b15ce62e27d8ccc91d30c40ef44011cd;hb=795115bf680185ae01043bd1222b78bfed8c1d87;hp=2bd56997609407864311d83b76bfb87ba8001490;hpb=a10a047c4b8414ecc8d20ee8e48854e3e9e4c5f7;p=NeonServV5.git diff --git a/cmd_neonserv_delban.c b/cmd_neonserv_delban.c index 2bd5699..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++; }