Mercurial > pidgin
changeset 17855:0f0e98978d66
Turns out the example in XEP-0084 is wrong. Fixed my implementation to not try to work around an issue that isn't one.
author | Andreas Monitzer <pidgin@monitzer.com> |
---|---|
date | Sun, 17 Jun 2007 04:05:28 +0000 |
parents | 5ab3c6bb95b4 |
children | f108b91e2fee |
files | libpurple/protocols/jabber/buddy.c libpurple/protocols/jabber/pep.c libpurple/protocols/jabber/pep.h |
diffstat | 3 files changed, 11 insertions(+), 15 deletions(-) [+] |
line wrap: on
line diff
--- a/libpurple/protocols/jabber/buddy.c Sun Jun 17 03:51:19 2007 +0000 +++ b/libpurple/protocols/jabber/buddy.c Sun Jun 17 04:05:28 2007 +0000 @@ -1129,12 +1129,16 @@ g_free(info); } -static void do_buddy_avatar_update_data(JabberStream *js, const char *from, xmlnode *item) { - xmlnode *data; +static void do_buddy_avatar_update_data(JabberStream *js, const char *from, xmlnode *items) { + xmlnode *item, *data; const char *checksum; char *b64data; void *img; size_t size; + if(!items) + return; + + item = xmlnode_get_child(items, "item"); if(!item) return;
--- a/libpurple/protocols/jabber/pep.c Sun Jun 17 03:51:19 2007 +0000 +++ b/libpurple/protocols/jabber/pep.c Sun Jun 17 04:05:28 2007 +0000 @@ -49,20 +49,13 @@ static void do_pep_iq_request_item_callback(JabberStream *js, xmlnode *packet, gpointer data) { const char *from = xmlnode_get_attrib(packet,"from"); xmlnode *pubsub = xmlnode_get_child_with_namespace(packet,"pubsub","http://jabber.org/protocol/pubsub#event"); - xmlnode *item = NULL; + xmlnode *items = NULL; JabberPEPHandler *cb = data; - if(pubsub) { - item = xmlnode_get_child(pubsub, "item"); - if(!item) { - /* does not follow the spec, but the ejabberd PEP implementation behaves that way */ - xmlnode *items = xmlnode_get_child(pubsub, "items"); - if(items) - item = xmlnode_get_child(items, "item"); - } - } + if(pubsub) + items = xmlnode_get_child(pubsub, "items"); - cb(js, from, item); + cb(js, from, items); } void jabber_pep_request_item(JabberStream *js, const char *to, const char *node, const char *id, JabberPEPHandler cb) {
--- a/libpurple/protocols/jabber/pep.h Sun Jun 17 03:51:19 2007 +0000 +++ b/libpurple/protocols/jabber/pep.h Sun Jun 17 04:05:28 2007 +0000 @@ -57,8 +57,7 @@ * @parameter id The item id of the requested item (may be NULL) * @parameter cb The callback to be used when this item is received * - * ATTN: The items parameter of the callback will only point to the single <item> element here! - * Additionally, the items element passed will be NULL if any error occured (like a permission error, node doesn't exist etc.) + * The items element passed to the callback will be NULL if any error occured (like a permission error, node doesn't exist etc.) */ void jabber_pep_request_item(JabberStream *js, const char *to, const char *node, const char *id, JabberPEPHandler cb);