summaryrefslogtreecommitdiff
path: root/src/irc
diff options
context:
space:
mode:
authorFlorent Le Coz <louiz@louiz.org>2013-12-26 14:57:13 +0100
committerFlorent Le Coz <louiz@louiz.org>2014-01-04 01:59:35 +0100
commit9df757fc6737b59f56d5b808ef48baba760b142e (patch)
treeae3b0c1543262f8328010a9f41c8be99cf140773 /src/irc
parentb8ce9ed43d809daefe17714b36aa0874ca5f6cc8 (diff)
downloadbiboumi-9df757fc6737b59f56d5b808ef48baba760b142e.tar.gz
biboumi-9df757fc6737b59f56d5b808ef48baba760b142e.tar.bz2
biboumi-9df757fc6737b59f56d5b808ef48baba760b142e.tar.xz
biboumi-9df757fc6737b59f56d5b808ef48baba760b142e.zip
Handle topic changes
Diffstat (limited to 'src/irc')
-rw-r--r--src/irc/irc_client.cpp2
-rw-r--r--src/irc/irc_client.hpp1
2 files changed, 3 insertions, 0 deletions
diff --git a/src/irc/irc_client.cpp b/src/irc/irc_client.cpp
index bde9973..bdeb2f8 100644
--- a/src/irc/irc_client.cpp
+++ b/src/irc/irc_client.cpp
@@ -274,6 +274,8 @@ void IrcClient::on_topic_received(const IrcMessage& message)
const std::string chan_name = utils::tolower(message.arguments[1]);
IrcChannel* channel = this->get_channel(chan_name);
channel->topic = message.arguments[2];
+ if (channel->joined)
+ this->bridge->send_topic(this->hostname, chan_name, channel->topic);
}
void IrcClient::on_channel_completely_joined(const IrcMessage& message)
diff --git a/src/irc/irc_client.hpp b/src/irc/irc_client.hpp
index 4038cdf..99ee6c0 100644
--- a/src/irc/irc_client.hpp
+++ b/src/irc/irc_client.hpp
@@ -218,6 +218,7 @@ static const std::unordered_map<std::string, irc_callback_t> irc_callbacks = {
{"PRIVMSG", &IrcClient::on_channel_message},
{"353", &IrcClient::set_and_forward_user_list},
{"332", &IrcClient::on_topic_received},
+ {"TOPIC", &IrcClient::on_topic_received},
{"366", &IrcClient::on_channel_completely_joined},
{"001", &IrcClient::on_welcome_message},
{"PART", &IrcClient::on_part},