# HG changeset patch # User Mark Doliner # Date 1190793434 0 # Node ID 408c4bb039158d123c96ae1082d3b7bbc7f13638 # Parent 94a64640af5df34c11c6eb3ee1b5a6b64a590950 Invalidate old oscar icons when someone clears their icon. Fixes #765. diff -r 94a64640af5d -r 408c4bb03915 libpurple/protocols/oscar/family_auth.c --- a/libpurple/protocols/oscar/family_auth.c Wed Sep 26 07:35:01 2007 +0000 +++ b/libpurple/protocols/oscar/family_auth.c Wed Sep 26 07:57:14 2007 +0000 @@ -438,10 +438,6 @@ * login request instead of the normal SNAC one. * * As soon as AOL makes ICQ log in the same way as AIM, this is /gone/. - * - * XXX This may cause problems if the client relies on callbacks only - * being called from the context of aim_rxdispatch()... - * */ static int goddamnicq(OscarData *od, FlapConnection *conn, const char *sn) diff -r 94a64640af5d -r 408c4bb03915 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Wed Sep 26 07:35:01 2007 +0000 +++ b/libpurple/protocols/oscar/oscar.c Wed Sep 26 07:57:14 2007 +0000 @@ -1873,6 +1873,10 @@ saved_b16 = purple_buddy_icons_get_checksum_for_user(b); if (!b16 || !saved_b16 || strcmp(b16, saved_b16)) { + /* Invalidate the old icon for this user */ + purple_buddy_icons_set_for_user(account, info->sn, NULL, 0, NULL); + + /* Fetch the new icon (if we're not already doing so) */ if (g_slist_find_custom(od->requesticon, info->sn, (GCompareFunc)aim_sncmp) == NULL) {