/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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.