Mercurial > pidgin.yaz
diff libpurple/protocols/msn/msn.c @ 24674:f3950234b164
If the MSN user is in the userlist already, then check whether we know the
network before adding them. If it's unknown (because the buddy's in the AB
or privacy lists only), then request network with an FQY.
References #3322.
References #6755.
author | Elliott Sales de Andrade <qulogic@pidgin.im> |
---|---|
date | Sun, 14 Dec 2008 05:24:32 +0000 |
parents | eae0e194658e |
children | 3e39e4652c36 ca01403251f1 68f4edb42f39 a959b17ffc57 9ea6842536ba |
line wrap: on
line diff
--- a/libpurple/protocols/msn/msn.c Sun Dec 14 05:22:52 2008 +0000 +++ b/libpurple/protocols/msn/msn.c Sun Dec 14 05:24:32 2008 +0000 @@ -1418,6 +1418,7 @@ MsnSession *session; MsnUserList *userlist; const char *who; + MsnUser *user; session = gc->proto_data; userlist = session->userlist; @@ -1446,9 +1447,10 @@ /* XXX - Would group ever be NULL here? I don't think so... * shx: Yes it should; MSN handles non-grouped buddies, and this is only * internal. */ - if (msn_userlist_find_user(userlist, who) != NULL) { - /* We already know this buddy. This function takes care of users - already in the list and stuff... */ + user = msn_userlist_find_user(userlist, who); + if ((user != NULL) && (user->networkid != MSN_NETWORK_UNKNOWN)) { + /* We already know this buddy and their network. This function knows + what to do with users already in the list and stuff... */ msn_userlist_add_buddy(userlist, who, group ? group->name : NULL); } else { /* We need to check the network for this buddy first */