Mercurial > pidgin
comparison libpurple/protocols/jabber/presence.c @ 27512: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 |
comparison
equal
deleted
inserted
replaced
27511:5d82a9298ed5 | 27512:ed284238509b |
---|---|
445 } | 445 } |
446 | 446 |
447 jbr->caps.info = info; | 447 jbr->caps.info = info; |
448 jbr->caps.exts = exts; | 448 jbr->caps.exts = exts; |
449 | 449 |
450 if (info == NULL) | |
451 goto out; | |
452 | |
450 if (!jbr->commands_fetched && jabber_resource_has_capability(jbr, "http://jabber.org/protocol/commands")) { | 453 if (!jbr->commands_fetched && jabber_resource_has_capability(jbr, "http://jabber.org/protocol/commands")) { |
451 JabberIq *iq = jabber_iq_new_query(userdata->js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#items"); | 454 JabberIq *iq = jabber_iq_new_query(userdata->js, JABBER_IQ_GET, "http://jabber.org/protocol/disco#items"); |
452 xmlnode *query = xmlnode_get_child_with_namespace(iq->node, "query", "http://jabber.org/protocol/disco#items"); | 455 xmlnode *query = xmlnode_get_child_with_namespace(iq->node, "query", "http://jabber.org/protocol/disco#items"); |
453 xmlnode_set_attrib(iq->node, "to", userdata->from); | 456 xmlnode_set_attrib(iq->node, "to", userdata->from); |
454 xmlnode_set_attrib(query, "node", "http://jabber.org/protocol/commands"); | 457 xmlnode_set_attrib(query, "node", "http://jabber.org/protocol/commands"); |
456 jabber_iq_send(iq); | 459 jabber_iq_send(iq); |
457 | 460 |
458 jbr->commands_fetched = TRUE; | 461 jbr->commands_fetched = TRUE; |
459 } | 462 } |
460 | 463 |
464 if (jabber_resource_has_capability(jbr, "http://jabber.org/protocol/chatstates")) | |
465 jbr->chat_states = JABBER_CHAT_STATES_SUPPORTED; | |
466 else | |
467 jbr->chat_states = JABBER_CHAT_STATES_UNSUPPORTED; | |
468 | |
469 out: | |
461 g_free(userdata->from); | 470 g_free(userdata->from); |
462 g_free(userdata); | 471 g_free(userdata); |
463 } | 472 } |
464 | 473 |
465 void jabber_presence_parse(JabberStream *js, xmlnode *packet) | 474 void jabber_presence_parse(JabberStream *js, xmlnode *packet) |