# HG changeset patch # User Christian Hammond # Date 1086759137 0 # Node ID e20af87d8721b96c16ddd783b50f9fd0a863dcbe # Parent 9b138ebf9ca8938fafb99691b1822b4528a79e74 [gaim-migrate @ 10045] Patch from Felipe Contreras that fixes corrupt buddy icon checksums and adds a menu item called "Update Buddy Icon." committer: Tailor Script diff -r 9b138ebf9ca8 -r e20af87d8721 src/protocols/msn/msn.c --- a/src/protocols/msn/msn.c Wed Jun 09 04:34:25 2004 +0000 +++ b/src/protocols/msn/msn.c Wed Jun 09 05:32:17 2004 +0000 @@ -379,6 +379,20 @@ gaim_xfer_request(xfer); } +static void +update_buddy_icon_cb(GaimBlistNode *node, gpointer ignored) +{ + GaimBuddy *buddy; + GaimConnection *gc; + + g_return_if_fail(GAIM_BLIST_NODE_IS_BUDDY(node)); + + buddy = (GaimBuddy *) node; + gc = gaim_account_get_connection(buddy->account); + + msn_request_buddy_icon(gc, buddy->name); +} + /************************************************************************** * Protocol Plugin ops **************************************************************************/ @@ -517,10 +531,6 @@ m = g_list_append(m, act); } - act = gaim_blist_node_action_new(_("Send File"), - show_send_file_cb, NULL); - - m = g_list_append(m, act); } if (g_ascii_strcasecmp(buddy->name, @@ -529,6 +539,16 @@ act = gaim_blist_node_action_new(_("Initiate Chat"), initiate_chat_cb, NULL); m = g_list_append(m, act); + + act = gaim_blist_node_action_new(_("Send File"), + show_send_file_cb, NULL); + + m = g_list_append(m, act); + + act = gaim_blist_node_action_new(_("Update Buddy Icon"), + update_buddy_icon_cb, NULL); + + m = g_list_append(m, act); } return m; diff -r 9b138ebf9ca8 -r e20af87d8721 src/protocols/msn/slplink.c --- a/src/protocols/msn/slplink.c Wed Jun 09 04:34:25 2004 +0000 +++ b/src/protocols/msn/slplink.c Wed Jun 09 05:32:17 2004 +0000 @@ -240,10 +240,13 @@ { /* The whole message has been sent */ - if ((slpmsg->slpcall != NULL) && - (slpmsg->slpcall->cb != NULL)) + if (slpmsg->flags == 0x20 || slpmsg->flags == 0x1000030) { - slpmsg->slpcall->cb(slpmsg->slpcall, NULL, 0); + if ((slpmsg->slpcall != NULL) && + (slpmsg->slpcall->cb != NULL)) + { + slpmsg->slpcall->cb(slpmsg->slpcall, NULL, 0); + } } msn_slpmsg_destroy(slpmsg);