From 0b8738d87aa101117c7681ade41f8527ad515d3c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?louiz=E2=80=99?= Date: Fri, 22 Jun 2018 21:33:58 +0200 Subject: Archive the Mode messages, except if they are received for an unjoined chan fix #3362 --- src/bridge/bridge.cpp | 4 ++-- src/bridge/bridge.hpp | 2 +- src/irc/irc_client.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/bridge/bridge.cpp b/src/bridge/bridge.cpp index 7a0157a..b6081d5 100644 --- a/src/bridge/bridge.cpp +++ b/src/bridge/bridge.cpp @@ -816,7 +816,7 @@ void Bridge::send_irc_version_request(const std::string& irc_hostname, const std this->add_waiting_irc(std::move(cb)); } -void Bridge::send_message(const Iid& iid, const std::string& nick, const std::string& body, const bool muc) +void Bridge::send_message(const Iid& iid, const std::string& nick, const std::string& body, const bool muc, const bool log) { const auto encoding = in_encoding_for(*this, iid); std::string uuid{}; @@ -824,7 +824,7 @@ void Bridge::send_message(const Iid& iid, const std::string& nick, const std::st { #ifdef USE_DATABASE const auto xmpp_body = this->make_xmpp_body(body, encoding); - if (!nick.empty() && this->record_history) + if (log && this->record_history) uuid = Database::store_muc_message(this->get_bare_jid(), iid.get_local(), iid.get_server(), std::chrono::system_clock::now(), std::get<0>(xmpp_body), nick); #endif diff --git a/src/bridge/bridge.hpp b/src/bridge/bridge.hpp index 04397c6..cb48a96 100644 --- a/src/bridge/bridge.hpp +++ b/src/bridge/bridge.hpp @@ -166,7 +166,7 @@ public: /** * Send a MUC message from some participant */ - void send_message(const Iid& iid, const std::string& nick, const std::string& body, const bool muc); + void send_message(const Iid& iid, const std::string& nick, const std::string& body, const bool muc, const bool log=true); /** * Send a presence of type error, from a room. */ diff --git a/src/irc/irc_client.cpp b/src/irc/irc_client.cpp index 0f3d43c..96fb4ef 100644 --- a/src/irc/irc_client.cpp +++ b/src/irc/irc_client.cpp @@ -1154,7 +1154,7 @@ void IrcClient::on_channel_mode(const IrcMessage& message) } this->bridge.send_message(iid, "", "Mode " + iid.get_local() + " [" + mode_arguments + "] by " + user.nick, - true); + true, this->is_channel_joined(iid.get_local())); const IrcChannel* channel = this->get_channel(iid.get_local()); if (!channel) return; -- cgit v1.2.3