Mon, 31 May 2010 06:58:02 +0000
merge of '6e023ceb6fa8bba9869db2848dbc65af1e57bcc5'
and '1f73e5b91bec14e4c03c1d9d67cce7dfe3129c2b'
--- a/libpurple/protocols/msn/notification.c Mon May 31 03:20:12 2010 +0000 +++ b/libpurple/protocols/msn/notification.c Mon May 31 06:58:02 2010 +0000 @@ -1572,7 +1572,7 @@ PurpleAccount *account; MsnUser *user; const char *passport; - char *psm_str, *str; + char *str; session = cmdproc->session; account = session->account; @@ -1580,7 +1580,7 @@ passport = cmd->params[0]; user = msn_userlist_find_user(session->userlist, passport); if (user == NULL) { - char *str = g_strndup(payload, len); + str = g_strndup(payload, len); purple_debug_info("msn", "unknown user %s, payload is %s\n", passport, str); g_free(str); @@ -1595,12 +1595,13 @@ user->extinfo->media_album = NULL; user->extinfo->media_artist = NULL; user->extinfo->media_title = NULL; + user->extinfo->media_type = CURRENT_MEDIA_UNKNOWN; } if (len != 0) { - psm_str = msn_get_psm(cmd->payload,len); - msn_user_set_statusline(user, psm_str); - g_free(psm_str); + str = msn_get_psm(cmd->payload,len); + msn_user_set_statusline(user, str); + g_free(str); str = msn_get_currentmedia(cmd->payload, len); parse_currentmedia(user, str); @@ -1609,6 +1610,11 @@ msn_user_set_statusline(user, NULL); } + if (user->extinfo && user->extinfo->media_type == CURRENT_MEDIA_UNKNOWN) { + g_free(user->extinfo); + user->extinfo = NULL; + } + msn_user_update(user); }