diff libpurple/protocols/oscar/flap_connection.c @ 27505:5048054d319a

Use the ui_info hash table instead of prefs when passing the clientstring and distid from the UIs to the oscar prpl. I realized that using a pref wasn't great because it's persistent, and if you switch from a UI that sets one of those strings to a UI that doesn't hen we'll keep using the old value.
author Mark Doliner <mark@kingant.net>
date Wed, 08 Jul 2009 20:11:07 +0000
parents f541583e31bd
children 74e487f82f39
line wrap: on
line diff
--- a/libpurple/protocols/oscar/flap_connection.c	Wed Jul 08 19:46:50 2009 +0000
+++ b/libpurple/protocols/oscar/flap_connection.c	Wed Jul 08 20:11:07 2009 +0000
@@ -77,14 +77,19 @@
 {
 	FlapFrame *frame;
 	GSList *tlvlist = NULL;
+	const char *clientstring;
 
 	frame = flap_frame_new(od, 0x01, 1152 + length);
 
 	byte_stream_put32(&frame->data, 0x00000001); /* FLAP Version */
 	aim_tlvlist_add_raw(&tlvlist, 0x0006, length, chipsahoy);
 
-	if (ci->clientstring)
-		aim_tlvlist_add_str(&tlvlist, 0x0003, ci->clientstring);
+	clientstring = oscar_get_ui_info_string(
+			od->icq ? "prpl-icq-clientstring" : "prpl-aim-clientstring",
+			ci->clientstring);
+
+	if (clientstring != NULL)
+		aim_tlvlist_add_str(&tlvlist, 0x0003, clientstring);
 	aim_tlvlist_add_16(&tlvlist, 0x0017, (guint16)ci->major);
 	aim_tlvlist_add_16(&tlvlist, 0x0018, (guint16)ci->minor);
 	aim_tlvlist_add_16(&tlvlist, 0x0019, (guint16)ci->point);