summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorlouiz’ <louiz@louiz.org>2016-10-03 21:35:16 +0200
committerlouiz’ <louiz@louiz.org>2016-10-03 21:35:16 +0200
commit28f1dd76548fc9a7de3920d938903f68cdfffe0d (patch)
tree3c340ad1f8ecb71223c8edf448b086e1b77d1f2c /src
parent45aebb8d8a3088058ae65b154496ce1fb2e3d94d (diff)
downloadbiboumi-28f1dd76548fc9a7de3920d938903f68cdfffe0d.tar.gz
biboumi-28f1dd76548fc9a7de3920d938903f68cdfffe0d.tar.bz2
biboumi-28f1dd76548fc9a7de3920d938903f68cdfffe0d.tar.xz
biboumi-28f1dd76548fc9a7de3920d938903f68cdfffe0d.zip
Make version requests work with global user JIDs as well
fix #3210
Diffstat (limited to 'src')
-rw-r--r--src/bridge/bridge.cpp2
-rw-r--r--src/xmpp/biboumi_component.cpp3
2 files changed, 3 insertions, 2 deletions
diff --git a/src/bridge/bridge.cpp b/src/bridge/bridge.cpp
index 65171a9..7724ba7 100644
--- a/src/bridge/bridge.cpp
+++ b/src/bridge/bridge.cpp
@@ -713,7 +713,7 @@ void Bridge::send_irc_version_request(const std::string& irc_hostname, const std
if (irc_hostname != hostname)
return false;
IrcUser user(message.prefix);
- if (message.command == "NOTICE" && user.nick == target &&
+ if (message.command == "NOTICE" && utils::tolower(user.nick) == utils::tolower(target) &&
message.arguments.size() >= 2 && message.arguments[1].substr(0, 9) == "\01VERSION ")
{
// remove the "\01VERSION " and the "\01" parts from the string
diff --git a/src/xmpp/biboumi_component.cpp b/src/xmpp/biboumi_component.cpp
index f43b5e0..1e66b62 100644
--- a/src/xmpp/biboumi_component.cpp
+++ b/src/xmpp/biboumi_component.cpp
@@ -412,7 +412,8 @@ void BiboumiComponent::handle_iq(const Stanza& stanza)
else if ((query = stanza.get_child("query", VERSION_NS)))
{
Iid iid(to.local, bridge);
- if (iid.type != Iid::Type::Server && !to.resource.empty())
+ if ((iid.type == Iid::Type::Channel && !to.resource.empty()) ||
+ (iid.type == Iid::Type::User))
{
// Get the IRC user version
std::string target;