/soc/2015/koosha/main: 18f9bdd43fda: XEP-0198 (Stream Management...
Koosha Khajehmoogahi <[email protected]>
| Newsgroups | gmane.comp.gnome.gaim.cvs |
|---|---|
| Message-ID | <[email protected]> |
Changeset: 18f9bdd43fdad59895058b40179d96bf41be28d4 Author: Koosha Khajehmoogahi <[email protected]> Date: 2015-08-07 20:36 +0200 Branch: default URL: https://hg.pidgin.im/soc/2015/koosha/main/rev/18f9bdd43fda Description: XEP-0198 (Stream Management): check that server supports SM diffstat: libpurple/protocols/jabber/jabber.c | 10 +++++++--- libpurple/protocols/jabber/jabber.h | 3 ++- libpurple/protocols/jabber/namespaces.h | 1 + 3 files changed, 10 insertions(+), 4 deletions(-) diffs (53 lines): diff --git a/libpurple/protocols/jabber/jabber.c b/libpurple/protocols/jabber/jabber.c --- a/libpurple/protocols/jabber/jabber.c +++ b/libpurple/protocols/jabber/jabber.c @@ -292,6 +292,10 @@ void jabber_stream_features_parse(Jabber return; } + /* XEP-0198: Stream Management */ + if (purple_xmlnode_get_child_with_namespace(packet, "sm", NS_XMPP_SM)) + js->server_caps |= JABBER_CAP_SM; + if(js->registration) { jabber_register_start(js); } else if(purple_xmlnode_get_child(packet, "mechanisms")) { @@ -352,11 +356,11 @@ void jabber_process_packet(JabberStream name = (*packet)->name; 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")) diff --git a/libpurple/protocols/jabber/jabber.h b/libpurple/protocols/jabber/jabber.h --- a/libpurple/protocols/jabber/jabber.h +++ b/libpurple/protocols/jabber/jabber.h @@ -52,7 +52,8 @@ typedef enum { 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 } JabberCapabilities; diff --git a/libpurple/protocols/jabber/namespaces.h b/libpurple/protocols/jabber/namespaces.h --- a/libpurple/protocols/jabber/namespaces.h +++ b/libpurple/protocols/jabber/namespaces.h @@ -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" _______________________________________________ Commits mailing list [email protected] https://pidgin.im/cgi-bin/mailman/listinfo/commits