From 367de4826c3c7298a88e80c92e325081a3c3d794 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?louiz=E2=80=99?= Date: Wed, 18 May 2016 22:53:17 +0200 Subject: Associate a bridge with a bare JID instead of a full JID ref #2556 --- src/xmpp/biboumi_component.cpp | 10 ++++++---- src/xmpp/biboumi_component.hpp | 2 +- 2 files changed, 7 insertions(+), 5 deletions(-) (limited to 'src') diff --git a/src/xmpp/biboumi_component.cpp b/src/xmpp/biboumi_component.cpp index 5b1d0e0..94d85c6 100644 --- a/src/xmpp/biboumi_component.cpp +++ b/src/xmpp/biboumi_component.cpp @@ -507,22 +507,24 @@ void BiboumiComponent::handle_iq(const Stanza& stanza) Bridge* BiboumiComponent::get_user_bridge(const std::string& user_jid) { + auto bare_jid = Jid{user_jid}.bare(); try { - return this->bridges.at(user_jid).get(); + return this->bridges.at(bare_jid).get(); } catch (const std::out_of_range& exception) { - this->bridges.emplace(user_jid, std::make_unique(user_jid, *this, this->poller)); - return this->bridges.at(user_jid).get(); + this->bridges.emplace(bare_jid, std::make_unique(bare_jid, *this, this->poller)); + return this->bridges.at(bare_jid).get(); } } Bridge* BiboumiComponent::find_user_bridge(const std::string& user_jid) { + auto bare_jid = Jid{user_jid}.bare(); try { - return this->bridges.at(user_jid).get(); + return this->bridges.at(bare_jid).get(); } catch (const std::out_of_range& exception) { diff --git a/src/xmpp/biboumi_component.hpp b/src/xmpp/biboumi_component.hpp index f1817e2..4d5995e 100644 --- a/src/xmpp/biboumi_component.hpp +++ b/src/xmpp/biboumi_component.hpp @@ -83,7 +83,7 @@ public: private: /** - * Return the bridge associated with the given full JID. Create a new one + * Return the bridge associated with the bare JID. Create a new one * if none already exist. */ Bridge* get_user_bridge(const std::string& user_jid); -- cgit v1.2.3