Fixed disconnect due to max characters

This commit is contained in:
WolverinDEV 2020-11-26 10:45:30 +01:00
parent 6cd481e824
commit eaca25ea30
1 changed files with 20 additions and 5 deletions

View File

@ -774,7 +774,17 @@ command_result ConnectedClient::handleCommandChannelCreate(Command &cmd) {
}
if (cmd["channel_name"].string().length() < 1) return command_result{error::channel_name_inuse, "Invalid channel name"};
if (cmd["channel_name"].string().length() < 1) {
return command_result{error::channel_name_invalid};
}
if (cmd[0].has("channel_name") && count_characters(cmd["channel_name"]) > 40) {
return command_result{error::channel_name_invalid};
}
if (count_characters(cmd["channel_name_phonetic"]) > 40) {
return command_result{error::channel_name_invalid};
}
{
if (target_tree->findChannel(cmd["channel_name"].as<std::string>(), parent ? dynamic_pointer_cast<BasicChannel>(parent->entry) : nullptr)) return command_result{error::channel_name_inuse, "Name already in use"};
@ -1013,13 +1023,18 @@ command_result ConnectedClient::handleCommandChannelEdit(Command &cmd) {
require_write_lock = true;
} else if (key == "channel_name") {
ACTION_REQUIRES_PERMISSION(permission::b_channel_modify_name, 1, channel_id);
if (count_characters(cmd["channel_name"]) < 1)
return command_result{error::channel_name_invalid};
if (count_characters(cmd["channel_name"]) > 40)
return command_result{error::channel_name_invalid};
if (count_characters(cmd["channel_name"]) < 1) {
return command_result{error::channel_name_invalid};
}
if (count_characters(cmd["channel_name"]) > 40) {
return command_result{error::channel_name_invalid};
}
require_write_lock = true;
update_name = true;
} else if (key == "channel_name_phonetic") {
if (count_characters(cmd["channel_name_phonetic"]) > 40) {
return command_result{error::parameter_invalid, "channel_name_phonetic"};
}
ACTION_REQUIRES_PERMISSION(permission::b_channel_modify_name, 1, channel_id);
} else if (key == "channel_topic") {
ACTION_REQUIRES_PERMISSION(permission::b_channel_modify_topic, 1, channel_id);