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;
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());
}
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) {
}
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++];
}
} 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++]);
modeBufferSimpleMode(modeBuf, add, modeStr[i]);
}
} else {
- reply(textclient, user, "NS_MODE_INVALID", modeStr[i]);
+ reply(textclient, user, "NS_MODE_INVALID", modeStr);
return;
}
}