changeset 20661:408c4bb03915

Invalidate old oscar icons when someone clears their icon. Fixes #765.
author Mark Doliner <mark@kingant.net>
date Wed, 26 Sep 2007 07:57:14 +0000
parents 94a64640af5d
children 91a345965223
files libpurple/protocols/oscar/family_auth.c libpurple/protocols/oscar/oscar.c
diffstat 2 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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)
--- 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)
 			{