# HG changeset patch # User Paul Aurich # Date 1257311344 0 # Node ID 4575d8daba129ad8f9e20286bc87d975dd056ae7 # Parent 4549c3b5a0b3c1014333d99728fd3a180d86f309 oscar: Fix 'Allow multiple simultaenous logins' with clientLogin. diff -r 4549c3b5a0b3 -r 4575d8daba12 ChangeLog --- a/ChangeLog Tue Nov 03 19:27:23 2009 +0000 +++ b/ChangeLog Wed Nov 04 05:09:04 2009 +0000 @@ -14,6 +14,8 @@ AIM and ICQ: * Better rate limit calculations and other improvements. (Aman Gupta) * More detailed error messages when messages fail to send. (Aman Gupta) + * The simultaneous login account option is respected when using + the clientLogin authentication method. MSN: * Don't forget display names for buddies. diff -r 4549c3b5a0b3 -r 4575d8daba12 libpurple/protocols/oscar/flap_connection.c --- a/libpurple/protocols/oscar/flap_connection.c Tue Nov 03 19:27:23 2009 +0000 +++ b/libpurple/protocols/oscar/flap_connection.c Wed Nov 04 05:09:04 2009 +0000 @@ -73,7 +73,7 @@ } void -flap_connection_send_version_with_cookie_and_clientinfo(OscarData *od, FlapConnection *conn, guint16 length, const guint8 *chipsahoy, ClientInfo *ci) +flap_connection_send_version_with_cookie_and_clientinfo(OscarData *od, FlapConnection *conn, guint16 length, const guint8 *chipsahoy, ClientInfo *ci, gboolean allow_multiple_logins) { FlapFrame *frame; GSList *tlvlist = NULL; @@ -94,7 +94,7 @@ aim_tlvlist_add_16(&tlvlist, 0x0018, (guint16)ci->minor); aim_tlvlist_add_16(&tlvlist, 0x0019, (guint16)ci->point); aim_tlvlist_add_16(&tlvlist, 0x001a, (guint16)ci->build); - aim_tlvlist_add_8(&tlvlist, 0x004a, 0x01); + aim_tlvlist_add_8(&tlvlist, 0x004a, (allow_multiple_logins ? 0x01 : 0x03)); aim_tlvlist_write(&frame->data, &tlvlist); diff -r 4549c3b5a0b3 -r 4575d8daba12 libpurple/protocols/oscar/oscar.c --- a/libpurple/protocols/oscar/oscar.c Tue Nov 03 19:27:23 2009 +0000 +++ b/libpurple/protocols/oscar/oscar.c Wed Nov 04 05:09:04 2009 +0000 @@ -1188,7 +1188,8 @@ ClientInfo icqinfo = CLIENTINFO_PURPLE_ICQ; flap_connection_send_version_with_cookie_and_clientinfo(od, conn, conn->cookielen, conn->cookie, - od->icq ? &icqinfo : &aiminfo); + od->icq ? &icqinfo : &aiminfo, + purple_account_get_bool(account, "allow_multiple_logins", OSCAR_DEFAULT_ALLOW_MULTIPLE_LOGINS)); } else { flap_connection_send_version_with_cookie(od, conn, conn->cookielen, conn->cookie); diff -r 4549c3b5a0b3 -r 4575d8daba12 libpurple/protocols/oscar/oscar.h --- a/libpurple/protocols/oscar/oscar.h Tue Nov 03 19:27:23 2009 +0000 +++ b/libpurple/protocols/oscar/oscar.h Wed Nov 04 05:09:04 2009 +0000 @@ -661,7 +661,7 @@ void flap_connection_send(FlapConnection *conn, FlapFrame *frame); void flap_connection_send_version(OscarData *od, FlapConnection *conn); void flap_connection_send_version_with_cookie(OscarData *od, FlapConnection *conn, guint16 length, const guint8 *chipsahoy); -void flap_connection_send_version_with_cookie_and_clientinfo(OscarData *od, FlapConnection *conn, guint16 length, const guint8 *chipsahoy, ClientInfo *ci); +void flap_connection_send_version_with_cookie_and_clientinfo(OscarData *od, FlapConnection *conn, guint16 length, const guint8 *chipsahoy, ClientInfo *ci, gboolean allow_multiple_login); void flap_connection_send_snac(OscarData *od, FlapConnection *conn, guint16 family, const guint16 subtype, guint16 flags, aim_snacid_t snacid, ByteStream *data); void flap_connection_send_snac_with_priority(OscarData *od, FlapConnection *conn, guint16 family, const guint16 subtype, guint16 flags, aim_snacid_t snacid, ByteStream *data, gboolean high_priority); void flap_connection_send_keepalive(OscarData *od, FlapConnection *conn);