diff libpurple/protocols/msnp9/userlist.c @ 22681:a7ef2c82d125

When reciving our buddy list on MSN, add people to the permit and deny lists before adding them to the buddylist. This fixes a bug when our privacy setting is "allow only the people below." There would be a very brief period of time when the buddy list thought that the person you just added to your buddy list was blocked. This didn't seem to matter in Pidgin, but it could matter in other UIs. *ahem*
author Mark Doliner <mark@kingant.net>
date Thu, 17 Apr 2008 00:39:01 +0000
parents af5de2b08fe0
children cc8903c59d6b
line wrap: on
line diff
--- a/libpurple/protocols/msnp9/userlist.c	Wed Apr 16 21:34:38 2008 +0000
+++ b/libpurple/protocols/msnp9/userlist.c	Thu Apr 17 00:39:01 2008 +0000
@@ -362,6 +362,20 @@
 	passport = msn_user_get_passport(user);
 	store = msn_user_get_friendly_name(user);
 
+	if (list_op & MSN_LIST_AL_OP)
+	{
+		/* These are users who are allowed to see our status. */
+		purple_privacy_deny_remove(account, passport, TRUE);
+		purple_privacy_permit_add(account, passport, TRUE);
+	}
+
+	if (list_op & MSN_LIST_BL_OP)
+	{
+		/* These are users who are not allowed to see our status. */
+		purple_privacy_permit_remove(account, passport, TRUE);
+		purple_privacy_deny_add(account, passport, TRUE);
+	}
+
 	if (list_op & MSN_LIST_FL_OP)
 	{
 		GSList *c;
@@ -377,20 +391,6 @@
 		serv_got_alias(gc, passport, store);
 	}
 
-	if (list_op & MSN_LIST_AL_OP)
-	{
-		/* These are users who are allowed to see our status. */
-		purple_privacy_deny_remove(account, passport, TRUE);
-		purple_privacy_permit_add(account, passport, TRUE);
-	}
-
-	if (list_op & MSN_LIST_BL_OP)
-	{
-		/* These are users who are not allowed to see our status. */
-		purple_privacy_permit_remove(account, passport, TRUE);
-		purple_privacy_deny_add(account, passport, TRUE);
-	}
-
 	if (list_op & MSN_LIST_RL_OP)
 	{
 		/* These are users who have us on their buddy list. */