X-Git-Url: http://git.pk910.de/?p=NeonServV5.git;a=blobdiff_plain;f=src%2Fmodules%2FNeonServ.mod%2Fcmd_neonserv_mode.c;h=a1a912524f10c82ef04021aa20ff93600bcd7f32;hp=400fbcb9212d606f98ad1c70acd1b8493df48f80;hb=caa3238cc43909d4d3a27ff95b77f9ab23f85baf;hpb=4d078d69cd2308cc835d7d8f1117e9b18ec37b61 diff --git a/src/modules/NeonServ.mod/cmd_neonserv_mode.c b/src/modules/NeonServ.mod/cmd_neonserv_mode.c index 400fbcb..a1a9125 100644 --- a/src/modules/NeonServ.mod/cmd_neonserv_mode.c +++ b/src/modules/NeonServ.mod/cmd_neonserv_mode.c @@ -1,4 +1,4 @@ -/* cmd_neonserv_mode.c - NeonServ v5.5 +/* cmd_neonserv_mode.c - NeonServ v5.6 * Copyright (C) 2011-2012 Philipp Kreil (pk910) * * This program is free software: you can redistribute it and/or modify @@ -34,7 +34,7 @@ struct neonserv_cmd_mode_cache { CMD_BIND(neonserv_cmd_mode) { struct neonserv_cmd_mode_cache *cache = malloc(sizeof(*cache)); if (!cache) { - perror("malloc() failed"); + printf_log("neonserv", LOG_ERROR, "%s:%d malloc() failed", __FILE__, __LINE__); return; } cache->client = client; @@ -64,7 +64,7 @@ static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS modeBuf = initModeBuffer(client, chan); printf_mysql_query("SELECT `channel_canop`, `channel_canvoice`, `channel_canban`, `channel_enfmodes`, `channel_modes` FROM `channels` WHERE `channel_id` = '%d'", chan->channel_id); row = mysql_fetch_row(mysql_use()); - if(row[0] == NULL || row[1] == NULL || row[2] == NULL || row[3] == NULL) { + if(row[0] == NULL || row[1] == NULL || row[2] == NULL || row[3] == NULL || row[4] == NULL) { printf_mysql_query("SELECT `channel_canop`, `channel_canvoice`, `channel_canban`, `channel_enfmodes`, `channel_modes` FROM `channels` WHERE `channel_name` = 'defaults'"); defaults = mysql_fetch_row(mysql_use()); } @@ -206,7 +206,7 @@ static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS default: modetype = getModeType(modelock, modeStr[i]); if(modetype == 0) { - reply(textclient, user, "NS_MODE_INVALID", modeStr[i]); + reply(textclient, user, "NS_MODE_INVALID", modeStr); return; } if(isModeAffected(modelock, modeStr[i]) && add == !isModeSet(modelock, modeStr[i]) && uaccess < db_enfmodes) { @@ -220,7 +220,7 @@ static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS } if(add && (modetype & CHANNEL_MODE_TYPE) != CHANNEL_MODE_TYPE_D) { if(arg == argc) { - reply(textclient, user, "NS_MODE_INVALID", modeStr[i]); + reply(textclient, user, "NS_MODE_INVALID", modeStr); return; } carg = argv[arg++]; @@ -250,7 +250,7 @@ static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS } } else if(!add && (modetype & CHANNEL_MODE_TYPE) == CHANNEL_MODE_TYPE_B) { if(arg == argc && !(modetype & CHANNEL_MODE_KEY)) { - reply(textclient, user, "NS_MODE_INVALID", modeStr[i]); + reply(textclient, user, "NS_MODE_INVALID", modeStr); return; } carg = (arg == argc ? NULL : argv[arg++]); @@ -278,7 +278,7 @@ static void neonserv_cmd_mode_async1(struct ClientSocket *client, struct ClientS modeBufferSimpleMode(modeBuf, add, modeStr[i]); } } else { - reply(textclient, user, "NS_MODE_INVALID", modeStr[i]); + reply(textclient, user, "NS_MODE_INVALID", modeStr); return; } }