diff libpurple/protocols/jabber/presence.c @ 27588:ed284238509b

Use Entity Capabilities to pick up Chat States support. Refs #4650.
author Paul Aurich <paul@darkrain42.org>
date Sun, 12 Jul 2009 05:25:59 +0000
parents ebd9630ffc77
children 1b92b9b51e2a a08e84032814
line wrap: on
line diff
--- a/libpurple/protocols/jabber/presence.c	Sun Jul 12 05:14:32 2009 +0000
+++ b/libpurple/protocols/jabber/presence.c	Sun Jul 12 05:25:59 2009 +0000
@@ -447,6 +447,9 @@
 	jbr->caps.info = info;
 	jbr->caps.exts = exts;
 
+	if (info == NULL)
+		goto out;
+
 	if (!jbr->commands_fetched && jabber_resource_has_capability(jbr, "http://jabber.org/protocol/commands")) {
 		JabberIq *iq = jabber_iq_new_query(userdata->js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#items");
 		xmlnode *query = xmlnode_get_child_with_namespace(iq->node, "query", "http://jabber.org/protocol/disco#items");
@@ -458,6 +461,12 @@
 		jbr->commands_fetched = TRUE;
 	}
 
+	if (jabber_resource_has_capability(jbr, "http://jabber.org/protocol/chatstates"))
+		jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED;
+	else
+		jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED;
+
+out:
 	g_free(userdata->from);
 	g_free(userdata);
 }