--- a/libpurple/protocols/jabber/jabber.c Tue Aug 04 19:09:39 2015 +0200
+++ b/libpurple/protocols/jabber/jabber.c Fri Aug 07 20:36:34 2015 +0200
@@ -292,6 +292,10 @@
+ /* XEP-0198: Stream Management */ + if (purple_xmlnode_get_child_with_namespace(packet, "sm", NS_XMPP_SM)) + js->server_caps |= JABBER_CAP_SM; jabber_register_start(js);
} else if(purple_xmlnode_get_child(packet, "mechanisms")) {
@@ -352,11 +356,11 @@
xmlns = purple_xmlnode_get_namespace(*packet);
- if(!strcmp((*packet)->name, "iq")) {
+ if (purple_strequal(name, "iq")) { jabber_iq_parse(js, *packet);
- } else if(!strcmp((*packet)->name, "presence")) {
+ } else if (purple_strequal(name, "presence")) { jabber_presence_parse(js, *packet);
- } else if(!strcmp((*packet)->name, "message")) {
+ } else if (purple_strequal(name, "message")) { jabber_message_parse(js, *packet);
} else if (purple_strequal(xmlns, NS_XMPP_STREAMS)) {
if (g_str_equal(name, "features"))
--- a/libpurple/protocols/jabber/jabber.h Tue Aug 04 19:09:39 2015 +0200
+++ b/libpurple/protocols/jabber/jabber.h Fri Aug 07 20:36:34 2015 +0200
@@ -52,7 +52,8 @@
JABBER_CAP_FACEBOOK = 1 << 16,
JABBER_MSG_DELIVERY = 1 << 17,
JABBER_MSG_REPLACE = 1 << 18,
- JABBER_CAP_CARBONS = 1 << 19,
+ JABBER_CAP_CARBONS = 1 << 19, + JABBER_CAP_SM = 1 << 20, JABBER_CAP_RETRIEVED = 1 << 31
--- a/libpurple/protocols/jabber/namespaces.h Tue Aug 04 19:09:39 2015 +0200
+++ b/libpurple/protocols/jabber/namespaces.h Fri Aug 07 20:36:34 2015 +0200
@@ -31,6 +31,7 @@
#define NS_XMPP_STANZAS "urn:ietf:params:xml:ns:xmpp-stanzas"
#define NS_XMPP_STREAMS "http://etherx.jabber.org/streams"
#define NS_XMPP_TLS "urn:ietf:params:xml:ns:xmpp-tls"
+#define NS_XMPP_SM "urn:xmpp:sm:3" /* XEP-0012 Last Activity (and XEP-0256 Last Activity in Presence) */
#define NS_LAST_ACTIVITY "jabber:iq:last"