Mercurial > pidgin
comparison libpurple/protocols/jabber/disco.c @ 27540:d953b613a794
Fix picking up SI streamhosts from login server and plug a leak.
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Tue, 14 Jul 2009 22:47:42 +0000 |
parents | dd7e7071d46d |
children | 49cb3fc2c01a |
comparison
equal
deleted
inserted
replaced
27537:32d2caa6a777 | 27540:d953b613a794 |
---|---|
295 capabilities |= JABBER_CAP_RETRIEVED; | 295 capabilities |= JABBER_CAP_RETRIEVED; |
296 | 296 |
297 if(jbr) | 297 if(jbr) |
298 jbr->capabilities = capabilities; | 298 jbr->capabilities = capabilities; |
299 | 299 |
300 jdicd->callback(js, from, capabilities, jdicd->data); | 300 if (jdicd && jdicd->callback) |
301 jdicd->callback(js, from, capabilities, jdicd->data); | |
301 } else { /* type == JABBER_IQ_ERROR or query == NULL */ | 302 } else { /* type == JABBER_IQ_ERROR or query == NULL */ |
302 JabberID *jid; | 303 JabberID *jid; |
303 JabberBuddy *jb; | 304 JabberBuddy *jb; |
304 JabberBuddyResource *jbr = NULL; | 305 JabberBuddyResource *jbr = NULL; |
305 JabberCapabilities capabilities = JABBER_CAP_NONE; | 306 JabberCapabilities capabilities = JABBER_CAP_NONE; |
311 } | 312 } |
312 | 313 |
313 if(jbr) | 314 if(jbr) |
314 capabilities = jbr->capabilities; | 315 capabilities = jbr->capabilities; |
315 | 316 |
316 jdicd->callback(js, from, capabilities, jdicd->data); | 317 if (jdicd && jdicd->callback) |
317 } | 318 jdicd->callback(js, from, capabilities, jdicd->data); |
319 } | |
320 | |
321 g_free(jdicd); | |
318 } | 322 } |
319 | 323 |
320 void jabber_disco_items_parse(JabberStream *js, const char *from, | 324 void jabber_disco_items_parse(JabberStream *js, const char *from, |
321 JabberIqType type, const char *id, | 325 JabberIqType type, const char *id, |
322 xmlnode *query) | 326 xmlnode *query) |
513 if((node = xmlnode_get_attrib(child, "node"))) | 517 if((node = xmlnode_get_attrib(child, "node"))) |
514 continue; | 518 continue; |
515 | 519 |
516 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#info"); | 520 iq = jabber_iq_new_query(js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#info"); |
517 xmlnode_set_attrib(iq->node, "to", jid); | 521 xmlnode_set_attrib(iq->node, "to", jid); |
522 jabber_iq_set_callback(iq, jabber_disco_info_cb, NULL); | |
518 jabber_iq_send(iq); | 523 jabber_iq_send(iq); |
519 } | 524 } |
520 } | 525 } |
521 | 526 |
522 void jabber_disco_items_server(JabberStream *js) | 527 void jabber_disco_items_server(JabberStream *js) |