Send a presence error from the room, when receiving command ERR_BADCHANNELKEY

fix #2886
This commit is contained in:
louiz’
2016-12-13 14:48:41 +01:00
parent 2e4a9fe4c7
commit 4792c70635
3 changed files with 56 additions and 1 deletions
+13 -1
View File
@@ -66,6 +66,7 @@ static const std::unordered_map<std::string,
{"433", {&IrcClient::on_nickname_conflict, {2, 0}}},
{"438", {&IrcClient::on_nickname_change_too_fast, {2, 0}}},
{"443", {&IrcClient::on_useronchannel, {3, 0}}},
{"475", {&IrcClient::on_channel_bad_key, {3, 0}}},
{"ERR_USERONCHANNEL", {&IrcClient::on_useronchannel, {3, 0}}},
{"001", {&IrcClient::on_welcome_message, {1, 0}}},
{"PART", {&IrcClient::on_part, {1, 0}}},
@@ -113,7 +114,6 @@ static const std::unordered_map<std::string,
{"472", {&IrcClient::on_generic_error, {2, 0}}},
{"473", {&IrcClient::on_generic_error, {2, 0}}},
{"474", {&IrcClient::on_generic_error, {2, 0}}},
{"475", {&IrcClient::on_generic_error, {2, 0}}},
{"476", {&IrcClient::on_generic_error, {2, 0}}},
{"477", {&IrcClient::on_generic_error, {2, 0}}},
{"481", {&IrcClient::on_generic_error, {2, 0}}},
@@ -1014,6 +1014,18 @@ void IrcClient::on_mode(const IrcMessage& message)
this->on_user_mode(message);
}
void IrcClient::on_channel_bad_key(const IrcMessage& message)
{
this->on_generic_error(message);
const std::string& nickname = message.arguments[0];
const std::string& channel = message.arguments[1];
std::string text;
if (message.arguments.size() > 2)
text = message.arguments[2];
this->bridge.send_presence_error({channel, this->hostname, Iid::Type::Channel}, nickname, "auth", "not-authorized", "", text);
}
void IrcClient::on_channel_mode(const IrcMessage& message)
{
// For now, just transmit the modes so the user can know what happens
+1
View File
@@ -257,6 +257,7 @@ public:
void on_nick(const IrcMessage& message);
void on_kick(const IrcMessage& message);
void on_mode(const IrcMessage& message);
void on_channel_bad_key(const IrcMessage& message);
/**
* A mode towards our own user is received (note, that is different from a
* channel mode towards or own nick, see