adium.1-3: 9166882a: Apply Mark's "libpurple_fix_aim_blocklis...
zacw at adiumx.com
zacw at adiumx.com
Fri Oct 16 10:25:45 EDT 2009
-----------------------------------------------------------------
Revision: 9166882a2852f0b4eb1e5e2a279baaf35c0212b2
Ancestor: ee77fb52bee587b4d2edaac3302fc9f698627825
Author: zacw at adiumx.com
Date: 2009-10-16T14:23:10
Branch: im.pidgin.adium.1-3
URL: http://d.pidgin.im/viewmtn/revision/info/9166882a2852f0b4eb1e5e2a279baaf35c0212b2
Modified files:
libpurple/protocols/oscar/oscar.c
libpurple/protocols/oscar/oscar.h
ChangeLog:
Apply Mark's "libpurple_fix_aim_blocklist.diff".
-------------- next part --------------
============================================================
--- libpurple/protocols/oscar/oscar.c 26149590cddb9ce8a5255a026e45a127a8d0da58
+++ libpurple/protocols/oscar/oscar.c 5414f609f598f9a89e93b64bb40f498f9cfb3e1b
@@ -3891,12 +3891,8 @@ static int purple_bosrights(OscarData *o
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));
@@ -3948,6 +3944,22 @@ static int purple_bosrights(OscarData *o
if ((od->authinfo->email != NULL) && ((strchr(gc->account->username, '@') == NULL)))
aim_srv_requestnew(od, SNAC_FAMILY_ALERT);
+ 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;
}
@@ -5387,6 +5399,15 @@ static int purple_ssi_parselist(OscarDat
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;
}
============================================================
--- libpurple/protocols/oscar/oscar.h 6846afcaad3e902e2931f3ed6eea7f8693f4a69a
+++ libpurple/protocols/oscar/oscar.h 2228da4a9f39179f017a93121b99356733cb8498
@@ -530,6 +530,10 @@ struct _OscarData
struct userinfo_node *requested;
} locate;
+ struct {
+ gboolean have_rights;
+ } bos;
+
/* Server-stored information (ssi) */
struct {
gboolean received_data;
More information about the Commits
mailing list