Mercurial > pidgin
changeset 5456:40e976d42028
[gaim-migrate @ 5844]
I *think* this will prevent errors with MsnUser not being set, and other
stuff. We'll see.
committer: Tailor Script <tailor@pidgin.im>
author | Christian Hammond <chipx86@chipx86.com> |
---|---|
date | Tue, 20 May 2003 04:14:17 +0000 |
parents | f9658a84d1ed |
children | c8c290021b7b |
files | src/protocols/msn/notification.c src/protocols/msn/session.h |
diffstat | 2 files changed, 26 insertions(+), 10 deletions(-) [+] |
line wrap: on
line diff
--- a/src/protocols/msn/notification.c Tue May 20 03:33:13 2003 +0000 +++ b/src/protocols/msn/notification.c Tue May 20 04:14:17 2003 +0000 @@ -212,6 +212,8 @@ if (!g_ascii_strcasecmp(params[1], "OK")) { /* OK */ + session->syncing_lists = TRUE; + if (!msn_servconn_send_command(servconn, "SYN", "0")) { hide_login_progress(gc, _("Unable to write")); signoff(gc); @@ -581,7 +583,7 @@ passport = params[5]; friend = msn_url_decode(params[6]); - if (session->lists_synced) + if (session->syncing_lists && session->lists_synced) return TRUE; if (!g_ascii_strcasecmp(type, "FL") && user_num != 0) { @@ -655,18 +657,30 @@ if (user_num != num_users) return TRUE; /* This isn't the last one in the RL. */ - if (!msn_servconn_send_command(servconn, "CHG", "NLN")) { - hide_login_progress(gc, _("Unable to write")); - signoff(gc); + /* Now we're at the last one, so we can do final work. */ + if (!session->lists_synced) { + if (!msn_servconn_send_command(servconn, "CHG", "NLN")) { + hide_login_progress(gc, _("Unable to write")); + signoff(gc); - return FALSE; + return FALSE; + } + + account_online(gc); + serv_finish_login(gc); } - account_online(gc); - serv_finish_login(gc); + if (session->lists.allow == NULL) + session->lists.allow = g_slist_copy(gc->account->permit); + else + session->lists.allow = g_slist_concat(session->lists.allow, + gc->account->permit); - session->lists.allow = g_slist_copy(gc->account->permit); - session->lists.block = g_slist_copy(gc->account->deny); + if (session->lists.block == NULL) + session->lists.block = g_slist_copy(gc->account->deny); + else + session->lists.block = g_slist_concat(session->lists.block, + gc->account->deny); while (session->lists.forward != NULL) { MsnUser *user = session->lists.forward->data; @@ -720,7 +734,8 @@ (char *)msn_user_get_name(user)); } - session->lists_synced = TRUE; + session->syncing_lists = FALSE; + session->lists_synced = TRUE; } return TRUE;
--- a/src/protocols/msn/session.h Tue May 20 03:33:13 2003 +0000 +++ b/src/protocols/msn/session.h Tue May 20 04:14:17 2003 +0000 @@ -71,6 +71,7 @@ /* You have no idea how much I hate all that is below. */ GaimPlugin *prpl; + gboolean syncing_lists; gboolean lists_synced; /* For moving buddies from one group to another. Ugh. */