Mercurial > pidgin
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); |