comparison libpurple/protocols/oscar/family_oservice.c @ 26959:ab298d237562

propagate from branch 'im.pidgin.pidgin.2.5.5.veracode' (head 1744a346c5951c97b5d6ec102b49606f3dd918cc) to branch 'im.pidgin.pidgin' (head f4e1d87650834d9a82d09020df0fb030f25854e0)
author Daniel Atallah <daniel.atallah@gmail.com>
date Thu, 14 May 2009 21:16:58 +0000
parents c7ec8f3b39d3 cef8479194c0
children 45583f271c02
comparison
equal deleted inserted replaced
25846:c7ec8f3b39d3 26959:ab298d237562
823 * also set 0x0008 and 0x000c. 823 * also set 0x0008 and 0x000c.
824 */ 824 */
825 int 825 int
826 aim_srv_setextrainfo(OscarData *od, 826 aim_srv_setextrainfo(OscarData *od,
827 gboolean seticqstatus, guint32 icqstatus, 827 gboolean seticqstatus, guint32 icqstatus,
828 gboolean setavailmsg, const char *availmsg, const char *itmsurl) 828 gboolean setstatusmsg, const char *statusmsg, const char *itmsurl)
829 { 829 {
830 FlapConnection *conn; 830 FlapConnection *conn;
831 ByteStream bs; 831 ByteStream bs;
832 aim_snacid_t snacid; 832 aim_snacid_t snacid;
833 GSList *tlvlist = NULL; 833 GSList *tlvlist = NULL;
849 aim_tlvlist_add_raw(&tlvlist, 0x0011, 0x0005, unknown 0x01 61 10 f6 41); 849 aim_tlvlist_add_raw(&tlvlist, 0x0011, 0x0005, unknown 0x01 61 10 f6 41);
850 aim_tlvlist_add_16(&tlvlist, 0x0012, unknown 0x00 00); 850 aim_tlvlist_add_16(&tlvlist, 0x0012, unknown 0x00 00);
851 } 851 }
852 #endif 852 #endif
853 853
854 if (setavailmsg) 854 if (setstatusmsg)
855 { 855 {
856 int availmsglen, itmsurllen; 856 size_t statusmsglen, itmsurllen;
857 ByteStream tmpbs; 857 ByteStream tmpbs;
858 858
859 availmsglen = (availmsg != NULL) ? strlen(availmsg) : 0; 859 statusmsglen = (statusmsg != NULL) ? strlen(statusmsg) : 0;
860 itmsurllen = (itmsurl != NULL) ? strlen(itmsurl) : 0; 860 itmsurllen = (itmsurl != NULL) ? strlen(itmsurl) : 0;
861 861
862 byte_stream_new(&tmpbs, availmsglen + 8 + itmsurllen + 8); 862 byte_stream_new(&tmpbs, statusmsglen + 8 + itmsurllen + 8);
863 byte_stream_put16(&tmpbs, 0x0002); 863 byte_stream_put_bart_asset_str(&tmpbs, 0x0002, statusmsg);
864 byte_stream_put8(&tmpbs, 0x04); /* Flags */ 864 byte_stream_put_bart_asset_str(&tmpbs, 0x0009, itmsurl);
865 byte_stream_put8(&tmpbs, availmsglen + 4);
866 byte_stream_put16(&tmpbs, availmsglen);
867 if (availmsglen > 0)
868 byte_stream_putstr(&tmpbs, availmsg);
869 byte_stream_put16(&tmpbs, 0x0000);
870
871 byte_stream_put16(&tmpbs, 0x0009);
872 byte_stream_put8(&tmpbs, 0x04); /* Flags */
873 byte_stream_put8(&tmpbs, itmsurllen + 4);
874 byte_stream_put16(&tmpbs, itmsurllen);
875 if (itmsurllen > 0)
876 byte_stream_putstr(&tmpbs, itmsurl);
877 byte_stream_put16(&tmpbs, 0x0000);
878 865
879 aim_tlvlist_add_raw(&tlvlist, 0x001d, 866 aim_tlvlist_add_raw(&tlvlist, 0x001d,
880 byte_stream_curpos(&tmpbs), tmpbs.data); 867 byte_stream_curpos(&tmpbs), tmpbs.data);
881 byte_stream_destroy(&tmpbs); 868 byte_stream_destroy(&tmpbs);
882 } 869 }