~singpolyma/biboumi

b2e7edeea8bf08b6b7e75d60af3af0c30fdaa4f3 — louiz’ 8 years ago 4e959a3
Properly set the “from” of the ping results to the correct full JID
M louloulibs/xmpp/xmpp_component.cpp => louloulibs/xmpp/xmpp_component.cpp +10 -0
@@ 631,6 631,16 @@ void XmppComponent::send_iq_version_request(const std::string& from,
  this->send_stanza(iq);
}

void XmppComponent::send_iq_result_full_jid(const std::string& id, const std::string& to_jid, const std::string& from_full_jid)
{
  Stanza iq("iq");
  iq["from"] = from_full_jid;
  iq["to"] = to_jid;
  iq["id"] = id;
  iq["type"] = "result";
  this->send_stanza(iq);
}

void XmppComponent::send_iq_result(const std::string& id, const std::string& to_jid, const std::string& from_local_part)
{
  Stanza iq("iq");

M louloulibs/xmpp/xmpp_component.hpp => louloulibs/xmpp/xmpp_component.hpp +2 -0
@@ 200,6 200,8 @@ public:
   * Send an empty iq of type result
   */
  void send_iq_result(const std::string& id, const std::string& to_jid, const std::string& from);
  void send_iq_result_full_jid(const std::string& id, const std::string& to_jid,
                               const std::string& from_full_jid);

  void handle_handshake(const Stanza& stanza);
  void handle_error(const Stanza& stanza);

M src/bridge/bridge.cpp => src/bridge/bridge.cpp +1 -2
@@ 483,8 483,7 @@ void Bridge::send_irc_user_ping_request(const std::string& irc_hostname, const s
          const std::string id = body.substr(6, body.size() - 7);
          if (id != iq_id)
            return false;
          Jid jid(from_jid);
          this->xmpp.send_iq_result(iq_id, to_jid, jid.local);
          this->xmpp.send_iq_result_full_jid(iq_id, to_jid, from_jid);
          return true;
        }
      if (message.command == "401" && message.arguments[1] == nick)

M src/xmpp/biboumi_component.cpp => src/xmpp/biboumi_component.cpp +2 -2
@@ 580,8 580,8 @@ void BiboumiComponent::send_iq_version_request(const std::string& from,
}

void BiboumiComponent::send_ping_request(const std::string& from,
                                      const std::string& jid_to,
                                      const std::string& id)
                                         const std::string& jid_to,
                                         const std::string& id)
{
  Stanza iq("iq");
  iq["type"] = "get";