diff libpurple/protocols/oscar/family_oservice.c @ 15627:2261750cf4e9

Allow setting of the iTunes Music Store URL for AIM accounts. It's similar to your available message. The intention is that you'll have an itms://itunes.com/link?whatever URL for the song you're currently listening to.
author Mark Doliner <mark@kingant.net>
date Tue, 13 Feb 2007 06:58:13 +0000
parents 3548e64b0245
children 32c366eeeb99
line wrap: on
line diff
--- a/libpurple/protocols/oscar/family_oservice.c	Mon Feb 12 08:43:04 2007 +0000
+++ b/libpurple/protocols/oscar/family_oservice.c	Tue Feb 13 06:58:13 2007 +0000
@@ -800,7 +800,7 @@
 int
 aim_srv_setextrainfo(OscarData *od,
 		gboolean seticqstatus, guint32 icqstatus,
-		gboolean setavailmsg, const char *availmsg)
+		gboolean setavailmsg, const char *availmsg, const char *itmsurl)
 {
 	FlapConnection *conn;
 	FlapFrame *frame;
@@ -828,20 +828,29 @@
 
 	if (setavailmsg)
 	{
-		int availmsglen;
+		int availmsglen, itmsurllen;
 		ByteStream tmpbs;
 
 		availmsglen = (availmsg != NULL) ? strlen(availmsg) : 0;
+		itmsurllen = (itmsurl != NULL) ? strlen(itmsurl) : 0;
 
-		byte_stream_new(&tmpbs, availmsglen + 8);
+		byte_stream_new(&tmpbs, availmsglen + 8 + itmsurllen + 8);
 		byte_stream_put16(&tmpbs, 0x0002);
-		byte_stream_put8(&tmpbs, 0x04);
+		byte_stream_put8(&tmpbs, 0x04); /* Flags */
 		byte_stream_put8(&tmpbs, availmsglen + 4);
 		byte_stream_put16(&tmpbs, availmsglen);
 		if (availmsglen > 0)
 			byte_stream_putstr(&tmpbs, availmsg);
 		byte_stream_put16(&tmpbs, 0x0000);
 
+		byte_stream_put16(&tmpbs, 0x0009);
+		byte_stream_put8(&tmpbs, 0x04); /* Flags */
+		byte_stream_put8(&tmpbs, itmsurllen + 4);
+		byte_stream_put16(&tmpbs, itmsurllen);
+		if (itmsurllen > 0)
+			byte_stream_putstr(&tmpbs, itmsurl);
+		byte_stream_put16(&tmpbs, 0x0000);
+
 		aim_tlvlist_add_raw(&tl, 0x001d,
 				byte_stream_curpos(&tmpbs), tmpbs.data);
 		g_free(tmpbs.data);