From 9cb6a0c2c927a857d502fd06212afac91a4f2079 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?louiz=E2=80=99?= Date: Wed, 23 Sep 2020 23:38:46 +0200 Subject: [PATCH] =?UTF-8?q?Entirely=20remove=20the=20code=20for=20the=20?= =?UTF-8?q?=E2=80=9Cpreferred=5Ffrom=E2=80=9D=20nick?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Since private messages are now always coming from the server-wide JIDs --- src/bridge/bridge.cpp | 31 ------------------------------- src/bridge/bridge.hpp | 21 --------------------- src/xmpp/biboumi_component.cpp | 2 -- 3 files changed, 54 deletions(-) diff --git a/src/bridge/bridge.cpp b/src/bridge/bridge.cpp index a5bd6f5..e7f334f 100644 --- a/src/bridge/bridge.cpp +++ b/src/bridge/bridge.cpp @@ -453,9 +453,6 @@ void Bridge::leave_irc_channel(Iid&& iid, const std::string& status_message, con } if (persistent) this->remove_resource_from_chan(key, resource); - // Since there are no resources left in that channel, we don't - // want to receive private messages using this room's JID - this->remove_all_preferred_from_jid_of_room(iid.get_local()); } else { @@ -1132,34 +1129,6 @@ void Bridge::on_irc_client_disconnected(const std::string& hostname) this->xmpp.on_irc_client_disconnected(hostname, this->user_jid); } -void Bridge::set_preferred_from_jid(const std::string& nick, const std::string& full_jid) -{ - auto it = this->preferred_user_from.find(nick); - if (it == this->preferred_user_from.end()) - this->preferred_user_from.emplace(nick, full_jid); - else - this->preferred_user_from[nick] = full_jid; -} - -void Bridge::remove_preferred_from_jid(const std::string& nick) -{ - auto it = this->preferred_user_from.find(nick); - if (it != this->preferred_user_from.end()) - this->preferred_user_from.erase(it); -} - -void Bridge::remove_all_preferred_from_jid_of_room(const std::string& channel_name) -{ - for (auto it = this->preferred_user_from.begin(); it != this->preferred_user_from.end();) - { - Iid iid(Jid(it->second).local, {}); - if (iid.get_local() == channel_name) - it = this->preferred_user_from.erase(it); - else - ++it; - } -} - void Bridge::add_waiting_irc(irc_responder_callback_t&& callback) { this->waiting_irc.emplace_back(std::move(callback)); diff --git a/src/bridge/bridge.hpp b/src/bridge/bridge.hpp index 6b15478..a7aef3d 100644 --- a/src/bridge/bridge.hpp +++ b/src/bridge/bridge.hpp @@ -216,19 +216,6 @@ public: * Get the number of server to which this bridge is connected or connecting. */ size_t active_clients() const; - /** - * Add (or replace the existing) into the preferred_user_from map - */ - void set_preferred_from_jid(const std::string& nick, const std::string& full_jid); - /** - * Remove the preferred jid for the given IRC nick - */ - void remove_preferred_from_jid(const std::string& nick); - /** - * Given a channel_name, remove all preferred from_jid that come - * from this chan. - */ - void remove_all_preferred_from_jid_of_room(const std::string& channel_name); /** * Add a callback to the waiting list of irc callbacks. */ @@ -283,14 +270,6 @@ private: * their sockets. */ std::shared_ptr poller; - /** - * A map of . For example if this map contains <"toto", - * "#somechan%server@biboumi/ToTo">, whenever a private message is - * received from the user "toto", instead of forwarding it to XMPP with - * from='toto!server@biboumi', we use instead - * from='#somechan%server@biboumi/ToTo' - */ - std::unordered_map preferred_user_from; /** * A list of callbacks that are waiting for some IrcMessage to trigger a * response. We add callbacks in this list whenever we received an IQ diff --git a/src/xmpp/biboumi_component.cpp b/src/xmpp/biboumi_component.cpp index f49b3b6..6e579cc 100644 --- a/src/xmpp/biboumi_component.cpp +++ b/src/xmpp/biboumi_component.cpp @@ -360,7 +360,6 @@ void BiboumiComponent::handle_message(const Stanza& stanza) if (iid.type == Iid::Type::User && !iid.get_local().empty()) { bridge->send_private_message(iid, body->get_inner()); - bridge->remove_preferred_from_jid(iid.get_local()); } else if (iid.type != Iid::Type::User && !to.resource.empty()) { // a message for chan%server@biboumi/Nick or @@ -368,7 +367,6 @@ void BiboumiComponent::handle_message(const Stanza& stanza) // Convert that into a message to nick!server Iid user_iid(utils::tolower(to.resource), iid.get_server(), Iid::Type::User); bridge->send_private_message(user_iid, body->get_inner()); - bridge->set_preferred_from_jid(user_iid.get_local(), to_str); } else if (iid.type == Iid::Type::Server) bridge->send_raw_message(iid.get_server(), body->get_inner()); -- 2.45.2