Mercurial > pidgin
changeset 28390:fd495ede2f3a
merge of '33ac448c0d0fbe2bd41ad24c9d2e8faa14fafa69'
and '8868b966ec81185b033adaf17af1a06143d2edb1'
author | Paul Aurich <paul@darkrain42.org> |
---|---|
date | Fri, 16 Oct 2009 01:27:25 +0000 |
parents | a020c6abc852 (diff) 583a2f6ae576 (current diff) |
children | b7d60f0e1df2 |
files | |
diffstat | 3 files changed, 32 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/ChangeLog Fri Oct 16 01:16:38 2009 +0000 +++ b/ChangeLog Fri Oct 16 01:27:25 2009 +0000 @@ -9,6 +9,9 @@ * Fix building the GnuTLS plugin with older versions of GnuTLS. * Fix DNS TXT query resolution. + AIM and ICQ: + * Fix blocking and other privacy lists. (Thanks to AOL) + XMPP: * Users connecting to Google Talk now have an "Initiate Chat" context menu option for their buddies. (Eion Robb)
--- a/libpurple/protocols/oscar/oscar.c Fri Oct 16 01:16:38 2009 +0000 +++ b/libpurple/protocols/oscar/oscar.c Fri Oct 16 01:27:25 2009 +0000 @@ -3909,12 +3909,8 @@ od->rights.maxpermits = (guint)maxpermits; od->rights.maxdenies = (guint)maxdenies; - purple_connection_set_state(gc, PURPLE_CONNECTED); - purple_debug_info("oscar", "buddy list loaded\n"); - aim_srv_clientready(od, conn); - if (purple_account_get_user_info(account) != NULL) serv_set_info(gc, purple_account_get_user_info(account)); @@ -3957,6 +3953,22 @@ aim_srv_requestnew(od, SNAC_FAMILY_ALERT); aim_srv_requestnew(od, SNAC_FAMILY_CHATNAV); + od->bos.have_rights = TRUE; + + /* + * If we've already received our feedbag data then we're not waiting on + * anything else, so send the server clientready. + * + * Normally we get bos rights before we get our feedbag data, so this + * rarely (never?) happens. And I'm not sure it actually matters if we + * wait for bos rights before calling clientready. But it seems safer + * to do it this way. + */ + if (od->ssi.received_data) { + aim_srv_clientready(od, conn); + purple_connection_set_state(gc, PURPLE_CONNECTED); + } + return 1; } @@ -5396,6 +5408,15 @@ oscar_set_icon(gc, img); purple_imgstore_unref(img); + /* + * If we've already received our bos rights then we're not waiting on + * anything else, so send the server clientready. + */ + if (od->bos.have_rights) { + aim_srv_clientready(od, conn); + purple_connection_set_state(gc, PURPLE_CONNECTED); + } + return 1; }
--- a/libpurple/protocols/oscar/oscar.h Fri Oct 16 01:16:38 2009 +0000 +++ b/libpurple/protocols/oscar/oscar.h Fri Oct 16 01:27:25 2009 +0000 @@ -535,6 +535,10 @@ struct aim_userinfo_s *userinfo; } locate; + struct { + gboolean have_rights; + } bos; + /* Server-stored information (ssi) */ struct { gboolean received_data;