~singpolyma/biboumi

e0c50dd99a6343000e147711d4a75dacd3853341 — Stephen Paul Weber 9 months ago f14752b
Add gateway/irc and caps
2 files changed, 14 insertions(+), 1 deletions(-)

M src/xmpp/biboumi_component.cpp
M src/xmpp/xmpp_component.hpp
M src/xmpp/biboumi_component.cpp => src/xmpp/biboumi_component.cpp +13 -1
@@ 953,11 953,15 @@ void BiboumiComponent::send_self_disco_info(const std::string& id, const std::st
    iq["from"] = this->served_hostname;
    XmlSubNode query(iq, "query");
    query["xmlns"] = DISCO_INFO_NS;
    XmlSubNode gwid(query, "identity");
    gwid["category"] = "gateway";
    gwid["type"] = "irc";
    gwid["name"] = "Biboumi";
    XmlSubNode identity(query, "identity");
    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, STABLE_MUC_ID_NS})
    for (const char *ns: {DISCO_INFO_NS, CAPS_NS, MUC_NS, ADHOC_NS, PING_NS, MAM_NS, VERSION_NS, STABLE_MUC_ID_NS})
      {
        XmlSubNode feature(query, "feature");
        feature["var"] = ns;


@@ 1194,6 1198,14 @@ void BiboumiComponent::send_presence_to_contact(const std::string& from, const s
    presence["type"] = type;
  if (!id.empty())
    presence["id"] = id;

  if (type.empty() && from == this->served_hostname) {
    XmlSubNode c(presence, "c");
    c["xmlns"] = CAPS_NS;
    c["hash"] = "sha-1";
    c["node"] = "https://biboumi.louiz.org/";
    c["ver"] = "m8CzZQt9wVuZlrV5a/vZYk/zAN0=";
  }
  this->send_stanza(presence);
}


M src/xmpp/xmpp_component.hpp => src/xmpp/xmpp_component.hpp +1 -0
@@ 16,6 16,7 @@

#define STREAM_NS        "http://etherx.jabber.org/streams"
#define COMPONENT_NS     "jabber:component:accept"
#define CAPS_NS          "http://jabber.org/protocol/caps"
#define MUC_NS           "http://jabber.org/protocol/muc"
#define MUC_USER_NS      MUC_NS"#user"
#define MUC_ADMIN_NS     MUC_NS"#admin"