X-Git-Url: http://git.pk910.de/?a=blobdiff_plain;f=src%2Fcmd_neonserv_trim.c;h=97c9615a2e6679cee9f31811a9a07b2e0848b41a;hb=c575e458c6257e75b97884847143b20965a5dfda;hp=eb58093c7146cb1f08e2fed81b7d46d12e864345;hpb=95fed4deda0319bee515e44ceec0c77061a2c04e;p=NeonServV5.git diff --git a/src/cmd_neonserv_trim.c b/src/cmd_neonserv_trim.c index eb58093..97c9615 100644 --- a/src/cmd_neonserv_trim.c +++ b/src/cmd_neonserv_trim.c @@ -1,4 +1,4 @@ -/* cmd_neonserv_trim.c - NeonServ v5.0 +/* cmd_neonserv_trim.c - NeonServ v5.2 * Copyright (C) 2011 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -43,6 +43,11 @@ CMD_BIND(neonserv_cmd_trim) { } } int min_access, max_access; + int duration = strToTime(user, argv[1]); + if(duration < 30) { + reply(getTextBot(), user, "NS_TRIM_DURATION_TOO_SHORT", 30); + return; + } if(!stricmp(argv[0], "users")) { min_access = 1; max_access = getChannelAccess(user, chan, 0) - 1; @@ -55,7 +60,26 @@ CMD_BIND(neonserv_cmd_trim) { return; } } - //TODO: TRIM BANS + MYSQL_RES *res; + MYSQL_ROW row; + char nameBuf[20]; + printf_mysql_query("SELECT `ban_mask`, `ban_id`, `ban_timeout` FROM `bans` WHERE `ban_channel` = '%d' AND `ban_triggered` < %d", chan->channel_id, (int) (time(0) - duration)); + res = mysql_use(); + int bancount = mysql_num_rows(res); + struct ModeBuffer *modenode = initModeBuffer(client, chan); + while ((row = mysql_fetch_row(res)) != NULL) { + 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]); + modeBufferUnban(modenode, row[0]); + } + freeModeBuffer(modenode); + char timeBuf[MAXLEN]; + reply(getTextBot(), user, "NS_TRIM_BAN_DONE", bancount, chan->name, timeToStr(user, duration, 3, timeBuf)); + if(bancount) + logEvent(event); return; } else { char *seperator = strstr(argv[0], "-"); @@ -81,12 +105,6 @@ CMD_BIND(neonserv_cmd_trim) { } } } - //parse duration... - int duration = strToTime(user, argv[1]); - if(duration < 30) { - reply(getTextBot(), user, "NS_TRIM_DURATION_TOO_SHORT", 30); - return; - } struct neonserv_cmd_trim_cache *cache = malloc(sizeof(*cache)); if (!cache) { perror("malloc() failed");