Mercurial > pidgin.yaz
comparison 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 |
comparison
equal
deleted
inserted
replaced
25769:68bfc99884ea | 25770:b1b1b75a922e |
---|---|
396 } | 396 } |
397 | 397 |
398 /* old value in jbr->caps is owned by caps code */ | 398 /* old value in jbr->caps is owned by caps code */ |
399 jbr->caps = info; | 399 jbr->caps = info; |
400 | 400 |
401 if (info) { | 401 if (jabber_resource_has_capability(jbr, "http://jabber.org/protocol/commands")) { |
402 GList *node = g_list_find_custom(info->features, "http://jabber.org/protocol/commands", (GCompareFunc)strcmp); | 402 JabberIq *iq = jabber_iq_new_query(userdata->js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#items"); |
403 if (node) { | 403 xmlnode *query = xmlnode_get_child_with_namespace(iq->node, "query", "http://jabber.org/protocol/disco#items"); |
404 JabberIq *iq = jabber_iq_new_query(userdata->js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#items"); | 404 xmlnode_set_attrib(iq->node, "to", userdata->from); |
405 xmlnode *query = xmlnode_get_child_with_namespace(iq->node, "query", "http://jabber.org/protocol/disco#items"); | 405 xmlnode_set_attrib(query, "node", "http://jabber.org/protocol/commands"); |
406 xmlnode_set_attrib(iq->node, "to", userdata->from); | 406 jabber_iq_set_callback(iq, jabber_adhoc_disco_result_cb, NULL); |
407 xmlnode_set_attrib(query, "node", "http://jabber.org/protocol/commands"); | 407 jabber_iq_send(iq); |
408 jabber_iq_set_callback(iq, jabber_adhoc_disco_result_cb, NULL); | |
409 jabber_iq_send(iq); | |
410 } | |
411 } | 408 } |
412 | 409 |
413 g_free(userdata->from); | 410 g_free(userdata->from); |
414 g_free(userdata); | 411 g_free(userdata); |
415 } | 412 } |