summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-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},