diff libpurple/protocols/msn/userlist.c @ 23470:eb8bd060b987

Update MSN Contact tokens when an invalid token error is returned.
author Elliott Sales de Andrade <qulogic@pidgin.im>
date Sat, 07 Jun 2008 06:21:09 +0000
parents 1ac5faa72c8d
children 5a6cf27ead31
line wrap: on
line diff
--- a/libpurple/protocols/msn/userlist.c	Sat Jun 07 06:12:44 2008 +0000
+++ b/libpurple/protocols/msn/userlist.c	Sat Jun 07 06:21:09 2008 +0000
@@ -694,17 +694,11 @@
 
 	new_group_name = group_name == NULL ? MSN_INDIVIDUALS_GROUP_NAME : group_name;
 
-
 	g_return_if_fail(userlist != NULL);
 	g_return_if_fail(userlist->session != NULL);
 
-
 	purple_debug_info("MSN Userlist", "Add user: %s to group: %s\n", who, new_group_name);
 
-	state = msn_callback_state_new(userlist->session);
-	msn_callback_state_set_who(state, who);
-	msn_callback_state_set_new_group_name(state, new_group_name);
-
 	if (!purple_email_is_valid(who))
 	{
 		/* only notify the user about problems adding to the friends list
@@ -720,6 +714,10 @@
 		return;
 	}
 
+	state = msn_callback_state_new(userlist->session);
+	msn_callback_state_set_who(state, who);
+	msn_callback_state_set_new_group_name(state, new_group_name);
+
 	group_id = msn_userlist_find_group_id(userlist, new_group_name);
 
 	if (group_id == NULL)
@@ -749,6 +747,7 @@
 
 		if (msn_userlist_user_is_in_group(user, group_id)) {
 			purple_debug_info("MSN Userlist", "User %s is already in group %s, returning\n", who, new_group_name);
+			msn_callback_state_free(state);
 			return;
 		}
 	}