comparison 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
comparison
equal deleted inserted replaced
15624:3548e64b0245 15627:2261750cf4e9
798 * also set 0x0008 and 0x000c. 798 * also set 0x0008 and 0x000c.
799 */ 799 */
800 int 800 int
801 aim_srv_setextrainfo(OscarData *od, 801 aim_srv_setextrainfo(OscarData *od,
802 gboolean seticqstatus, guint32 icqstatus, 802 gboolean seticqstatus, guint32 icqstatus,
803 gboolean setavailmsg, const char *availmsg) 803 gboolean setavailmsg, const char *availmsg, const char *itmsurl)
804 { 804 {
805 FlapConnection *conn; 805 FlapConnection *conn;
806 FlapFrame *frame; 806 FlapFrame *frame;
807 aim_snacid_t snacid; 807 aim_snacid_t snacid;
808 aim_tlvlist_t *tl = NULL; 808 aim_tlvlist_t *tl = NULL;
826 } 826 }
827 #endif 827 #endif
828 828
829 if (setavailmsg) 829 if (setavailmsg)
830 { 830 {
831 int availmsglen; 831 int availmsglen, itmsurllen;
832 ByteStream tmpbs; 832 ByteStream tmpbs;
833 833
834 availmsglen = (availmsg != NULL) ? strlen(availmsg) : 0; 834 availmsglen = (availmsg != NULL) ? strlen(availmsg) : 0;
835 835 itmsurllen = (itmsurl != NULL) ? strlen(itmsurl) : 0;
836 byte_stream_new(&tmpbs, availmsglen + 8); 836
837 byte_stream_new(&tmpbs, availmsglen + 8 + itmsurllen + 8);
837 byte_stream_put16(&tmpbs, 0x0002); 838 byte_stream_put16(&tmpbs, 0x0002);
838 byte_stream_put8(&tmpbs, 0x04); 839 byte_stream_put8(&tmpbs, 0x04); /* Flags */
839 byte_stream_put8(&tmpbs, availmsglen + 4); 840 byte_stream_put8(&tmpbs, availmsglen + 4);
840 byte_stream_put16(&tmpbs, availmsglen); 841 byte_stream_put16(&tmpbs, availmsglen);
841 if (availmsglen > 0) 842 if (availmsglen > 0)
842 byte_stream_putstr(&tmpbs, availmsg); 843 byte_stream_putstr(&tmpbs, availmsg);
844 byte_stream_put16(&tmpbs, 0x0000);
845
846 byte_stream_put16(&tmpbs, 0x0009);
847 byte_stream_put8(&tmpbs, 0x04); /* Flags */
848 byte_stream_put8(&tmpbs, itmsurllen + 4);
849 byte_stream_put16(&tmpbs, itmsurllen);
850 if (itmsurllen > 0)
851 byte_stream_putstr(&tmpbs, itmsurl);
843 byte_stream_put16(&tmpbs, 0x0000); 852 byte_stream_put16(&tmpbs, 0x0000);
844 853
845 aim_tlvlist_add_raw(&tl, 0x001d, 854 aim_tlvlist_add_raw(&tl, 0x001d,
846 byte_stream_curpos(&tmpbs), tmpbs.data); 855 byte_stream_curpos(&tmpbs), tmpbs.data);
847 g_free(tmpbs.data); 856 g_free(tmpbs.data);