diff options
author | Florent Le Coz <louiz@louiz.org> | 2014-05-28 01:27:41 +0200 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2014-05-28 01:27:41 +0200 |
commit | 6c2d03da4ea0443624b6bf434b6a654c12e48438 (patch) | |
tree | a1fd150cd3f6c114f1844bed7f57d8ce6438049f /src/irc | |
parent | 7b31bea75b0c5b9fe127ea6d845e48a3f87d480f (diff) | |
download | biboumi-6c2d03da4ea0443624b6bf434b6a654c12e48438.tar.gz biboumi-6c2d03da4ea0443624b6bf434b6a654c12e48438.tar.bz2 biboumi-6c2d03da4ea0443624b6bf434b6a654c12e48438.tar.xz biboumi-6c2d03da4ea0443624b6bf434b6a654c12e48438.zip |
Send an error presence when the connection to the IRC server fails
Diffstat (limited to 'src/irc')
-rw-r--r-- | src/irc/irc_client.cpp | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/irc/irc_client.cpp b/src/irc/irc_client.cpp index 270e0ed..f08e9d6 100644 --- a/src/irc/irc_client.cpp +++ b/src/irc/irc_client.cpp @@ -50,6 +50,13 @@ void IrcClient::on_connection_failed(const std::string& reason) { this->bridge->send_xmpp_message(this->hostname, "", "Connection failed: "s + reason); + // Send an error message for all room that the user wanted to join + for (const std::string& channel: this->channels_to_join) + { + Iid iid(channel + "%" + this->hostname); + this->bridge->send_join_failed(iid, this->current_nick, + "cancel", "item-not-found", reason); + } } void IrcClient::on_connected() @@ -167,11 +174,11 @@ void IrcClient::send_quit_command(const std::string& reason) void IrcClient::send_join_command(const std::string& chan_name) { - this->start(); if (this->welcomed == false) this->channels_to_join.push_back(chan_name); else this->send_message(IrcMessage("JOIN", {chan_name})); + this->start(); } bool IrcClient::send_channel_message(const std::string& chan_name, const std::string& body) |