diff options
author | louiz’ <louiz@louiz.org> | 2016-06-24 11:23:51 +0200 |
---|---|---|
committer | louiz’ <louiz@louiz.org> | 2016-06-24 11:23:51 +0200 |
commit | 7d2a2dc8cc9d2d9bcd83fb1bd869c29322855fa8 (patch) | |
tree | 8c07959a42c0b59d2b8d9a71edc82e7335b9d09b | |
parent | b2e7edeea8bf08b6b7e75d60af3af0c30fdaa4f3 (diff) | |
download | biboumi-7d2a2dc8cc9d2d9bcd83fb1bd869c29322855fa8.tar.gz biboumi-7d2a2dc8cc9d2d9bcd83fb1bd869c29322855fa8.tar.bz2 biboumi-7d2a2dc8cc9d2d9bcd83fb1bd869c29322855fa8.tar.xz biboumi-7d2a2dc8cc9d2d9bcd83fb1bd869c29322855fa8.zip |
Forward ping requests from IRC to XMPP, to one single resource
-rw-r--r-- | src/bridge/bridge.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/bridge/bridge.cpp b/src/bridge/bridge.cpp index eee4bd2..6de2516 100644 --- a/src/bridge/bridge.cpp +++ b/src/bridge/bridge.cpp @@ -746,7 +746,10 @@ void Bridge::send_xmpp_ping_request(const std::string& nick, const std::string& // Use revstr because the forwarded ping to target XMPP user must not be // the same that the request iq, but we also need to get it back easily // (revstr again) - this->xmpp.send_ping_request(nick + "!" + utils::empty_if_fixed_server(hostname), this->user_jid, utils::revstr(id)); + // Forward to the first resource (arbitrary, based on the “order” of the std::set) only + const auto resources = this->resources_in_server[hostname]; + if (resources.begin() != resources.end()) + this->xmpp.send_ping_request(nick + "!" + utils::empty_if_fixed_server(hostname), this->user_jid + "/" + *resources.begin(), utils::revstr(id)); } void Bridge::set_preferred_from_jid(const std::string& nick, const std::string& full_jid) |