Mercurial > pidgin.yaz
diff libpurple/protocols/oscar/family_auth.c @ 27506:74e487f82f39
Oh, we don't need a special ui_info field for the AIM clientstring
because we can just concat the name and version. And set the distids
for libpurple, Pidgin and Finch
AOL would like Adium to use 1551 (0x060f)
author | Mark Doliner <mark@kingant.net> |
---|---|
date | Wed, 08 Jul 2009 20:44:16 +0000 |
parents | 5048054d319a |
children | 26ce61fc9556 |
line wrap: on
line diff
--- a/libpurple/protocols/oscar/family_auth.c Wed Jul 08 20:11:07 2009 +0000 +++ b/libpurple/protocols/oscar/family_auth.c Wed Jul 08 20:44:16 2009 +0000 @@ -129,7 +129,6 @@ GSList *tlvlist = NULL; int passwdlen; guint8 *password_encoded; - const char *clientstring; guint32 distrib; passwdlen = strlen(password); @@ -141,9 +140,6 @@ aim_encode_password(password, password_encoded); - clientstring = oscar_get_ui_info_string( - od->icq ? "prpl-icq-clientstring" : "prpl-aim-clientstring", - ci->clientstring); distrib = oscar_get_ui_info_int( od->icq ? "prpl-icq-distid" : "prpl-aim-distid", ci->distrib); @@ -152,8 +148,13 @@ aim_tlvlist_add_str(&tlvlist, 0x0001, sn); aim_tlvlist_add_raw(&tlvlist, 0x0002, passwdlen, password_encoded); - if (clientstring) + if (ci->clientstring != NULL) + aim_tlvlist_add_str(&tlvlist, 0x0003, ci->clientstring); + else { + gchar *clientstring = oscar_get_clientstring(); aim_tlvlist_add_str(&tlvlist, 0x0003, clientstring); + g_free(clientstring); + } aim_tlvlist_add_16(&tlvlist, 0x0016, (guint16)ci->clientid); aim_tlvlist_add_16(&tlvlist, 0x0017, (guint16)ci->major); aim_tlvlist_add_16(&tlvlist, 0x0018, (guint16)ci->minor); @@ -219,7 +220,6 @@ guint8 digest[16]; aim_snacid_t snacid; size_t password_len; - const char *clientstring; guint32 distrib; if (!ci || !sn || !password) @@ -247,9 +247,6 @@ aim_encode_password_md5(password, password_len, key, digest); - clientstring = oscar_get_ui_info_string( - od->icq ? "prpl-icq-clientstring" : "prpl-aim-clientstring", - ci->clientstring); distrib = oscar_get_ui_info_int( od->icq ? "prpl-icq-distid" : "prpl-aim-distid", ci->distrib); @@ -260,8 +257,13 @@ aim_tlvlist_add_noval(&tlvlist, 0x004c); #endif - if (clientstring) + if (ci->clientstring != NULL) + aim_tlvlist_add_str(&tlvlist, 0x0003, ci->clientstring); + else { + gchar *clientstring = oscar_get_clientstring(); aim_tlvlist_add_str(&tlvlist, 0x0003, clientstring); + g_free(clientstring); + } aim_tlvlist_add_16(&tlvlist, 0x0016, (guint16)ci->clientid); aim_tlvlist_add_16(&tlvlist, 0x0017, (guint16)ci->major); aim_tlvlist_add_16(&tlvlist, 0x0018, (guint16)ci->minor);