# HG changeset patch # User Elliott Sales de Andrade # Date 1328232583 0 # Node ID 1a265986ed37c8dc9f5c00a5b881b140411ecf5f # Parent d1ac0c771e1917391ccb07f4d5129b317006e7f5 Fix NLN on MSNP18. diff -r d1ac0c771e19 -r 1a265986ed37 libpurple/protocols/msn/notification.c --- a/libpurple/protocols/msn/notification.c Fri Feb 03 01:26:14 2012 +0000 +++ b/libpurple/protocols/msn/notification.c Fri Feb 03 01:29:43 2012 +0000 @@ -1250,15 +1250,22 @@ MsnObject *msnobj; unsigned long clientid, extcaps; char *extcap_str; + char *passport; int networkid; - const char *state, *passport, *friendly; + const char *state, *friendly; session = cmdproc->session; state = cmd->params[0]; - passport = cmd->params[1]; - networkid = atoi(cmd->params[2]); - friendly = purple_url_decode(cmd->params[3]); + if (session->protocol_ver >= 18) { + const char *tmp = cmd->params[1]; + msn_parse_user(tmp, &passport, &networkid); + friendly = purple_url_decode(cmd->params[2]); + } else { + passport = cmd->params[1]; + networkid = atoi(cmd->params[2]); + friendly = purple_url_decode(cmd->params[3]); + } user = msn_userlist_find_user(session->userlist, passport); if (user == NULL) return; @@ -1292,6 +1299,9 @@ msn_user_set_state(user, state); msn_user_update(user); + + if (session->protocol_ver >= 18) + g_free(passport); } #if 0