added some code & compiler information to cmd_netinfo
[NeonServV5.git] / cmd_neonserv_delban.c
1
2 /*
3 * argv[0]    nick|*auth|*!*@mask
4 */
5
6 static CMD_BIND(neonserv_cmd_delban) {
7     char hostmask_buffer[NICKLEN+USERLEN+HOSTLEN+3];
8     check_mysql();
9     char *mask = make_banmask(argv[0], hostmask_buffer);
10     int matching_bans = 0;
11     MYSQL_RES *res;
12     MYSQL_ROW row;
13     //check if the provided mask is already banned by another ban
14     char *ban = getBanAffectingMask(chan, mask);
15     if(ban != NULL) {
16         reply(getTextBot(), user, "NS_DELBAN_BANNED_BY", mask, ban);
17         return;
18     }
19     //check if the provided mask affects any existing bans
20     printf_mysql_query("SELECT `ban_mask`, `ban_id` FROM `bans` WHERE `ban_channel` = '%d'", chan->channel_id);
21     res = mysql_use();
22     while ((row = mysql_fetch_row(res)) != NULL) {
23         if(!match(mask, row[0])) {
24             //remove the ban
25             printf_mysql_query("DELETE FROM `bans` WHERE `ban_id` = '%s'", row[1]);
26             matching_bans++;
27         }
28     }
29     if(matching_bans) {
30         putsock(client, "MODE %s -b %s", chan->name, mask);
31         reply(getTextBot(), user, "NS_DELBAN_DONE", mask, chan->name);
32     } else
33         reply(getTextBot(), user, "NS_DELBAN_FAIL", mask);
34 }