diff libpurple/protocols/jabber/presence.c @ 25770:b1b1b75a922e

Sprinkle jabber_resource_has_capability in places Plug a small leak
author Paul Aurich <paul@darkrain42.org>
date Wed, 26 Nov 2008 22:06:46 +0000
parents 805aadbb1a85
children e1f363f8fd6b
line wrap: on
line diff
--- a/libpurple/protocols/jabber/presence.c	Wed Nov 26 18:45:57 2008 +0000
+++ b/libpurple/protocols/jabber/presence.c	Wed Nov 26 22:06:46 2008 +0000
@@ -398,16 +398,13 @@
 	/* old value in jbr->caps is owned by caps code */
 	jbr->caps = info;
 
-	if (info) {
-		GList *node = g_list_find_custom(info->features, "http://jabber.org/protocol/commands", (GCompareFunc)strcmp);
-		if (node) {
-			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");
-			xmlnode_set_attrib(iq->node, "to", userdata->from);
-			xmlnode_set_attrib(query, "node", "http://jabber.org/protocol/commands");
-			jabber_iq_set_callback(iq, jabber_adhoc_disco_result_cb, NULL);
-			jabber_iq_send(iq);
-		}
+	if (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");
+		xmlnode_set_attrib(iq->node, "to", userdata->from);
+		xmlnode_set_attrib(query, "node", "http://jabber.org/protocol/commands");
+		jabber_iq_set_callback(iq, jabber_adhoc_disco_result_cb, NULL);
+		jabber_iq_send(iq);
 	}
 
 	g_free(userdata->from);