Return a proper iq when the IRC server responds to our kick

A result or an error, depending on the type of message
This commit is contained in:
Florent Le Coz
2014-06-19 22:22:29 +02:00
parent 26ffc8fe12
commit 2117838cf9
4 changed files with 61 additions and 5 deletions
+12 -1
View File
@@ -468,7 +468,7 @@ void XmppComponent::handle_iq(const Stanza& stanza)
if (reason_el)
reason = reason_el->get_inner();
Iid iid(to.local);
bridge->send_irc_kick(iid, nick, reason);
bridge->send_irc_kick(iid, nick, reason, id, from);
stanza_error.disable();
}
}
@@ -1014,6 +1014,17 @@ void XmppComponent::send_iq_version_request(const std::string& from,
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");
iq["from"] = from_local_part + "@" + this->served_hostname;
iq["to"] = to_jid;
iq["id"] = id;
iq["type"] = "result";
iq.close();
this->send_stanza(iq);
}
std::string XmppComponent::next_id()
{
char uuid_str[37];
+6 -1
View File
@@ -104,7 +104,8 @@ public:
*/
void send_stanza_error(const std::string& kind, const std::string& to, const std::string& from,
const std::string& id, const std::string& error_type,
const std::string& defined_condition, const std::string& text);
const std::string& defined_condition, const std::string& text,
const bool fulljid=true);
/**
* Send the closing signal for our document (not closing the connection though).
*/
@@ -208,6 +209,10 @@ public:
*/
void send_iq_version_request(const std::string& from,
const std::string& jid_to);
/**
* Send an empty iq of type result
*/
void send_iq_result(const std::string& id, const std::string& to_jid, const std::string& from);
/**
* Handle the various stanza types
*/