summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2020-09-23 23:38:46 +0200
committerlouiz’ <louiz@louiz.org>2020-09-23 23:38:46 +0200
commit9cb6a0c2c927a857d502fd06212afac91a4f2079 (patch)
treec0b505a9d2f2755d961f4b72c0bd655a747589c2
parent9a90c76eba79d5854e4ce47691f802bcdbf6c9ca (diff)
downloadbiboumi-9cb6a0c2c927a857d502fd06212afac91a4f2079.tar.gz
biboumi-9cb6a0c2c927a857d502fd06212afac91a4f2079.tar.bz2
biboumi-9cb6a0c2c927a857d502fd06212afac91a4f2079.tar.xz
biboumi-9cb6a0c2c927a857d502fd06212afac91a4f2079.zip
Entirely remove the code for the “preferred_from” nick
Since private messages are now always coming from the server-wide JIDs
-rw-r--r--src/bridge/bridge.cpp31
-rw-r--r--src/bridge/bridge.hpp21
-rw-r--r--src/xmpp/biboumi_component.cpp2
3 files changed, 0 insertions, 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
@@ -217,19 +217,6 @@ public:
*/
size_t active_clients() const;
/**
- * Add (or replace the existing) <nick, jid> 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.
*/
void add_waiting_irc(irc_responder_callback_t&& callback);
@@ -284,14 +271,6 @@ private:
*/
std::shared_ptr<Poller> poller;
/**
- * A map of <nick, full_jid>. 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<std::string, std::string> 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
* request and we need a response from IRC to be able to provide the
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());