# HG changeset patch # User Stu Tomlinson # Date 1196277266 0 # Node ID b08d0296ab88c430b218a2a55fb1629da6ec7944 # Parent c6487d5385f9f7a1ccf79cb7b01d9d32a71eea72 Fix 2 more issues related to friendly names: - Don't try setting any friendly names for unverified passports - Don't try setting a friendly name if they are not actually on our friend list Fixes #4109 diff -r c6487d5385f9 -r b08d0296ab88 libpurple/protocols/msnp9/notification.c --- a/libpurple/protocols/msnp9/notification.c Wed Nov 28 14:00:50 2007 +0000 +++ b/libpurple/protocols/msnp9/notification.c Wed Nov 28 19:14:26 2007 +0000 @@ -235,6 +235,8 @@ /* OK */ const char *friendly = purple_url_decode(cmd->params[3]); + session->passport_info.verified = atoi(cmd->params[4]); + purple_connection_set_display_name(gc, friendly); msn_session_set_login_step(session, MSN_LOGIN_STEP_SYN); diff -r c6487d5385f9 -r b08d0296ab88 libpurple/protocols/msnp9/session.h --- a/libpurple/protocols/msnp9/session.h Wed Nov 28 14:00:50 2007 +0000 +++ b/libpurple/protocols/msnp9/session.h Wed Nov 28 19:14:26 2007 +0000 @@ -114,7 +114,7 @@ char *file; char *client_ip; int client_port; - + int verified; } passport_info; }; diff -r c6487d5385f9 -r b08d0296ab88 libpurple/protocols/msnp9/user.c --- a/libpurple/protocols/msnp9/user.c Wed Nov 28 14:00:50 2007 +0000 +++ b/libpurple/protocols/msnp9/user.c Wed Nov 28 19:14:26 2007 +0000 @@ -126,16 +126,20 @@ msn_user_set_friendly_name(MsnUser *user, const char *name) { MsnCmdProc *cmdproc; + MsnSession *session; const char *encoded; g_return_if_fail(user != NULL); encoded = purple_url_encode(name); + session = user->userlist->session; - if (user->friendly_name && strcmp(user->friendly_name, name) && (strlen(encoded) < 387)) { + if (user->friendly_name && strcmp(user->friendly_name, name) + && (strlen(encoded) < 387) && session->passport_info.verified && + (user->list_op & MSN_LIST_FL_OP)) { /* copy the new name to the server list, but only when new */ /* should we check this more thoroughly? */ - cmdproc = user->userlist->session->notification->cmdproc; + cmdproc = session->notification->cmdproc; msn_cmdproc_send(cmdproc, "REA", "%s %s", user->passport, encoded);