Fix the case of the nick for ping requests

fix #3041
This commit is contained in:
Florent Le Coz
2015-05-11 05:31:11 +02:00
parent ad5bd99618
commit 7fe0dc2667
2 changed files with 3 additions and 3 deletions
+2 -2
View File
@@ -409,13 +409,13 @@ void Bridge::send_irc_user_ping_request(const std::string& irc_hostname, const s
Iid iid(nick + "!" + irc_hostname); Iid iid(nick + "!" + irc_hostname);
this->send_private_message(iid, "\01PING " + iq_id + "\01"); this->send_private_message(iid, "\01PING " + iq_id + "\01");
irc_responder_callback_t cb = [this, nick, iq_id, to_jid, irc_hostname, from_jid](const std::string& hostname, const IrcMessage& message) -> bool irc_responder_callback_t cb = [this, nick=utils::tolower(nick), iq_id, to_jid, irc_hostname, from_jid](const std::string& hostname, const IrcMessage& message) -> bool
{ {
if (irc_hostname != hostname) if (irc_hostname != hostname)
return false; return false;
IrcUser user(message.prefix); IrcUser user(message.prefix);
const std::string body = message.arguments[1]; const std::string body = message.arguments[1];
if (message.command == "NOTICE" && user.nick == nick && if (message.command == "NOTICE" && utils::tolower(user.nick) == nick &&
message.arguments.size() >= 2 && body.substr(0, 6) == "\01PING ") message.arguments.size() >= 2 && body.substr(0, 6) == "\01PING ")
{ {
const std::string id = body.substr(6, body.size() - 6); const std::string id = body.substr(6, body.size() - 6);
+1 -1
View File
@@ -452,7 +452,7 @@ void IrcClient::on_channel_message(const IrcMessage& message)
else if (body.substr(1, 8) == "VERSION\01") else if (body.substr(1, 8) == "VERSION\01")
this->bridge->send_iq_version_request(nick, this->hostname); this->bridge->send_iq_version_request(nick, this->hostname);
else if (body.substr(1, 5) == "PING ") else if (body.substr(1, 5) == "PING ")
this->bridge->send_xmpp_ping_request(nick, this->hostname, this->bridge->send_xmpp_ping_request(utils::tolower(nick), this->hostname,
body.substr(6, body.size() - 7)); body.substr(6, body.size() - 7));
} }
else else