| 1533 if(type && id && !goodinfo && !strcmp(type, "image/png")) |
1535 if(type && id && !goodinfo && !strcmp(type, "image/png")) |
| 1534 goodinfo = info; |
1536 goodinfo = info; |
| 1535 } |
1537 } |
| 1536 } |
1538 } |
| 1537 if(goodinfo) { |
1539 if(goodinfo) { |
| 1538 const char *url = xmlnode_get_attrib(goodinfo,"url"); |
1540 const char *url = xmlnode_get_attrib(goodinfo, "url"); |
| 1539 const char *id = xmlnode_get_attrib(goodinfo,"id"); |
1541 const char *id = xmlnode_get_attrib(goodinfo,"id"); |
| 1540 |
1542 |
| 1541 /* the avatar might either be stored in a pep node, or on a HTTP/HTTPS URL */ |
1543 /* the avatar might either be stored in a pep node, or on a HTTP/HTTPS URL */ |
| 1542 if(!url) |
1544 if(!url) |
| 1543 jabber_pep_request_item(js, from, AVATARNAMESPACEDATA, id, do_buddy_avatar_update_data); |
1545 jabber_pep_request_item(js, from, AVATARNAMESPACEDATA, id, do_buddy_avatar_update_data); |
| 1544 else { |
1546 else { |
| |
1547 PurpleUtilFetchUrlData *url_data; |
| 1545 JabberBuddyAvatarUpdateURLInfo *info = g_new0(JabberBuddyAvatarUpdateURLInfo, 1); |
1548 JabberBuddyAvatarUpdateURLInfo *info = g_new0(JabberBuddyAvatarUpdateURLInfo, 1); |
| 1546 info->js = js; |
1549 info->js = js; |
| 1547 info->from = g_strdup(from); |
1550 |
| 1548 info->id = g_strdup(id); |
1551 url_data = purple_util_fetch_url_len(url, TRUE, NULL, TRUE, |
| 1549 purple_util_fetch_url(url, TRUE, NULL, TRUE, do_buddy_avatar_update_fromurl, info); |
1552 MAX_HTTP_BUDDYICON_BYTES, |
| |
1553 do_buddy_avatar_update_fromurl, info); |
| |
1554 if (url_data) { |
| |
1555 info->from = g_strdup(from); |
| |
1556 info->id = g_strdup(id); |
| |
1557 js->url_datas = g_slist_prepend(js->url_datas, url_data); |
| |
1558 } else |
| |
1559 g_free(info); |
| |
1560 |
| 1550 } |
1561 } |
| 1551 } |
1562 } |
| 1552 } |
1563 } |
| 1553 } |
1564 } |
| 1554 |
1565 |