Include a private and no-copy nodes in private <message/> to avoid carbon duplication

This commit is contained in:
louiz’
2016-10-11 00:43:46 +02:00
parent 548e4ad473
commit dfc0793ef2
3 changed files with 19 additions and 7 deletions
+14 -1
View File
@@ -273,7 +273,8 @@ void* XmppComponent::get_receive_buffer(const size_t size) const
return this->parser.get_buffer(size);
}
void XmppComponent::send_message(const std::string& from, Xmpp::body&& body, const std::string& to, const std::string& type, const bool fulljid)
void XmppComponent::send_message(const std::string& from, Xmpp::body&& body, const std::string& to,
const std::string& type, const bool fulljid, const bool nocopy)
{
XmlNode node("message");
node["to"] = to;
@@ -294,6 +295,18 @@ void XmppComponent::send_message(const std::string& from, Xmpp::body&& body, con
html.add_child(std::move(std::get<1>(body)));
node.add_child(std::move(html));
}
if (nocopy)
{
XmlNode private_node("private");
private_node["xmlns"] = "urn:xmpp:carbons:2";
node.add_child(std::move(private_node));
XmlNode nocopy("no-copy");
nocopy["xmlns"] = "urn:xmpp:hints";
node.add_child(std::move(nocopy));
}
this->send_stanza(node);
}
+2 -3
View File
@@ -109,9 +109,8 @@ public:
* If fulljid is false, the provided 'from' doesn't contain the
* server-part of the JID and must be added.
*/
void send_message(const std::string& from, Xmpp::body&& body,
const std::string& to, const std::string& type,
const bool fulljid=false);
void send_message(const std::string& from, Xmpp::body&& body, const std::string& to,
const std::string& type, const bool fulljid, const bool nocopy=false);
/**
* Send a join from a new participant
*/