~singpolyma/biboumi

0de282a177baa0ed2d38a68715e78344172894ca — louiz’ 6 years ago 9500bfd
Advertise the muc#stable_id feature on disco#info results

From XEP 0045:
“Note: the requirement to reflect the 'id' attribute was added in version
1.31 of this XEP. Servers following the new specification SHOULD advertise
that with a disco info feature of 'http://jabber.org/protocol/muc#stable_id'
on both the service domain and on individual MUCs, so that clients can check
for support.”
2 files changed, 4 insertions(+), 3 deletions(-)

M src/xmpp/biboumi_component.cpp
M src/xmpp/xmpp_component.hpp
M src/xmpp/biboumi_component.cpp => src/xmpp/biboumi_component.cpp +3 -3
@@ 915,7 915,7 @@ void BiboumiComponent::send_self_disco_info(const std::string& id, const std::st
    identity["category"] = "conference";
    identity["type"] = "irc";
    identity["name"] = "Biboumi XMPP-IRC gateway";
    for (const char *ns: {DISCO_INFO_NS, MUC_NS, ADHOC_NS, PING_NS, MAM_NS, VERSION_NS})
    for (const char *ns: {DISCO_INFO_NS, MUC_NS, ADHOC_NS, PING_NS, MAM_NS, VERSION_NS, STABLE_MUC_ID_NS})
      {
        XmlSubNode feature(query, "feature");
        feature["var"] = ns;


@@ 939,7 939,7 @@ void BiboumiComponent::send_irc_server_disco_info(const std::string& id, const s
    identity["category"] = "conference";
    identity["type"] = "irc";
    identity["name"] = "IRC server " + from.local + " over Biboumi";
    for (const char *ns: {DISCO_INFO_NS, MUC_NS, ADHOC_NS, PING_NS, MAM_NS, VERSION_NS})
    for (const char *ns: {DISCO_INFO_NS, MUC_NS, ADHOC_NS, PING_NS, MAM_NS, VERSION_NS, STABLE_MUC_ID_NS})
      {
        XmlSubNode feature(query, "feature");
        feature["var"] = ns;


@@ 982,7 982,7 @@ void BiboumiComponent::send_irc_channel_disco_info(const std::string& id, const 
    identity["category"] = "conference";
    identity["type"] = "irc";
    identity["name"] = "IRC channel " + iid.get_local() + " from server " + iid.get_server() + " over biboumi";
    for (const char *ns: {DISCO_INFO_NS, MUC_NS, ADHOC_NS, PING_NS, MAM_NS, VERSION_NS})
    for (const char *ns: {DISCO_INFO_NS, MUC_NS, ADHOC_NS, PING_NS, MAM_NS, VERSION_NS, STABLE_MUC_ID_NS})
      {
        XmlSubNode feature(query, "feature");
        feature["var"] = ns;

M src/xmpp/xmpp_component.hpp => src/xmpp/xmpp_component.hpp +1 -0
@@ 37,6 37,7 @@
#define RSM_NS           "http://jabber.org/protocol/rsm"
#define MUC_TRAFFIC_NS   "http://jabber.org/protocol/muc#traffic"
#define STABLE_ID_NS     "urn:xmpp:sid:0"
#define STABLE_MUC_ID_NS "http://jabber.org/protocol/muc#stable_id"

/**
 * An XMPP component, communicating with an XMPP server using the protocole