diff options
author | Florent Le Coz <louiz@louiz.org> | 2015-05-19 06:00:07 +0200 |
---|---|---|
committer | Florent Le Coz <louiz@louiz.org> | 2015-05-19 06:21:59 +0200 |
commit | fa466f33f4c8009e69fe0ebf31c7eef1c394377b (patch) | |
tree | 9d6f52a43d0e04962b5aed574c7b9690ff868104 | |
parent | 2195292919110bad41f507f45fa1b7d86a369539 (diff) | |
download | biboumi-fa466f33f4c8009e69fe0ebf31c7eef1c394377b.tar.gz biboumi-fa466f33f4c8009e69fe0ebf31c7eef1c394377b.tar.bz2 biboumi-fa466f33f4c8009e69fe0ebf31c7eef1c394377b.tar.xz biboumi-fa466f33f4c8009e69fe0ebf31c7eef1c394377b.zip |
Ignore commands that flood the user with private messages when listing chans
ref #2472
-rw-r--r-- | src/irc/irc_client.cpp | 12 | ||||
-rw-r--r-- | src/irc/irc_client.hpp | 23 |
2 files changed, 35 insertions, 0 deletions
diff --git a/src/irc/irc_client.cpp b/src/irc/irc_client.cpp index 5f6aaaf..d048e47 100644 --- a/src/irc/irc_client.cpp +++ b/src/irc/irc_client.cpp @@ -459,6 +459,18 @@ void IrcClient::on_channel_message(const IrcMessage& message) this->bridge->send_message(iid, nick, body, muc); } +void IrcClient::on_rpl_liststart(const IrcMessage&) +{ +} + +void IrcClient::on_rpl_list(const IrcMessage&) +{ +} + +void IrcClient::on_rpl_listend(const IrcMessage&) +{ +} + void IrcClient::empty_motd(const IrcMessage& message) { (void)message; diff --git a/src/irc/irc_client.hpp b/src/irc/irc_client.hpp index 4ab0fcb..0d1604d 100644 --- a/src/irc/irc_client.hpp +++ b/src/irc/irc_client.hpp @@ -152,6 +152,23 @@ public: */ void set_and_forward_user_list(const IrcMessage& message); /** + * Signal the start of the LIST response. The RFC says its obsolete and + * “not used”, but I we receive it on some servers, so just ignore it. + */ + void on_rpl_liststart(const IrcMessage& message); + /** + * A single LIST response line (one channel) + * + * The command is handled in a wait_irc callback. This general handler is + * empty and just used to avoid sending a message stanza for each received + * channel. + */ + void on_rpl_list(const IrcMessage& message); + /** + * Signal the end of the LIST response, ignore. + */ + void on_rpl_listend(const IrcMessage& message); + /** * Remember our nick and host, when we are joined to the channel. The list * of user comes after so we do not send the self-presence over XMPP yet. */ @@ -324,6 +341,12 @@ static const std::unordered_map<std::string, irc_callback_t> irc_callbacks = { {"002", &IrcClient::forward_server_message}, {"003", &IrcClient::forward_server_message}, {"005", &IrcClient::on_isupport_message}, + {"RPL_LISTSTART", &IrcClient::on_rpl_liststart}, + {"321", &IrcClient::on_rpl_liststart}, + {"RPL_LIST", &IrcClient::on_rpl_list}, + {"322", &IrcClient::on_rpl_list}, + {"RPL_LISTEND", &IrcClient::on_rpl_listend}, + {"323", &IrcClient::on_rpl_listend}, {"RPL_MOTDSTART", &IrcClient::empty_motd}, {"375", &IrcClient::empty_motd}, {"RPL_MOTD", &IrcClient::on_motd_line}, |