# HG changeset patch # User Eric Warmenhoven # Date 1000955803 0 # Node ID 7ec21662ffc246da4c739479204a1dad1ac983b3 # Parent 64b4c69c1c5e768b22b2ad41f4b28a50c73e6e4a [gaim-migrate @ 2325] ha. committer: Tailor Script diff -r 64b4c69c1c5e -r 7ec21662ffc2 pixmaps/Makefile.am --- a/pixmaps/Makefile.am Thu Sep 20 01:44:24 2001 +0000 +++ b/pixmaps/Makefile.am Thu Sep 20 03:16:43 2001 +0000 @@ -1,4 +1,5 @@ -EXTRA_DIST = about_small.xpm \ +EXTRA_DIST = ab.xpm \ + about_small.xpm \ add.xpm \ add_small.xpm \ admin_icon.xpm \ diff -r 64b4c69c1c5e -r 7ec21662ffc2 pixmaps/ab.xpm --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/pixmaps/ab.xpm Thu Sep 20 03:16:43 2001 +0000 @@ -0,0 +1,21 @@ +/* XPM */ +static char * ab_xpm[] = { +"14 13 5 1", +" c None", +". c #000000", +"+ c #F70001", +"@ c #989898", +"# c #CBCBCB", +" .... ", +" .++. ", +".......... ", +"@######@@. ", +"@######@@. ", +"@#.##.#@@. ", +"@######@@. ", +"@.####.@@. ", +"@.####.@@. ", +"@#....#@@. ", +"@######@@. . ", +"..............", +".............."}; diff -r 64b4c69c1c5e -r 7ec21662ffc2 src/protocols/oscar/BUGS --- a/src/protocols/oscar/BUGS Thu Sep 20 01:44:24 2001 +0000 +++ b/src/protocols/oscar/BUGS Thu Sep 20 03:16:43 2001 +0000 @@ -3,6 +3,12 @@ ----- - Needs a bit of cleaning +info.c +------ + - aim_userinfo_s isn't real good. There is no way to tell the client + which fields are present and which are zero because they weren't + provided. + search.c ------------ - Still need aim_usersearch_name() diff -r 64b4c69c1c5e -r 7ec21662ffc2 src/protocols/oscar/CHANGES --- a/src/protocols/oscar/CHANGES Thu Sep 20 01:44:24 2001 +0000 +++ b/src/protocols/oscar/CHANGES Thu Sep 20 03:16:43 2001 +0000 @@ -1,6 +1,15 @@ No release numbers ------------------ + - Wed Sep 19 18:50:34 PDT 2001 + - Remove non-standard default features from aim_send_im_ext. + - Sadly, AOL 5.0 ignores messages with non-standard features. Once + AOL releases AOL 6 for the Macintosh, there will no longer be any + reason for anyone to use AOL 5, and this will be a non-issue. + - Check for 0x2711 TLV in buddy icons. This is weird. + - Add AIM_IMFLAG_ACTIVEBUDDY. + - Fix ICQ login. (Oops.) + - Tue Sep 11 16:41:11 PDT 2001 - Fix chat invites. - Keep faimtest from passing va_list's. That scares me. diff -r 64b4c69c1c5e -r 7ec21662ffc2 src/protocols/oscar/aim.h --- a/src/protocols/oscar/aim.h Thu Sep 20 01:44:24 2001 +0000 +++ b/src/protocols/oscar/aim.h Thu Sep 20 03:16:43 2001 +0000 @@ -399,6 +399,10 @@ #define AIM_FLAG_AWAY 0x0020 #define AIM_FLAG_UNKNOWN40 0x0040 #define AIM_FLAG_UNKNOWN80 0x0080 +#define AIM_FLAG_UNKNOWN100 0x0100 +#define AIM_FLAG_UNKNOWN200 0x0200 +#define AIM_FLAG_ACTIVEBUDDY 0x0400 +#define AIM_FLAG_UNKNOWN800 0x0800 #define AIM_FLAG_ALLUSERS 0x001f diff -r 64b4c69c1c5e -r 7ec21662ffc2 src/protocols/oscar/buddylist.c --- a/src/protocols/oscar/buddylist.c Thu Sep 20 01:44:24 2001 +0000 +++ b/src/protocols/oscar/buddylist.c Thu Sep 20 03:16:43 2001 +0000 @@ -127,7 +127,7 @@ if (!sn || !strlen(sn)) return -EINVAL; - if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x0002, 10+1+strlen(sn)))) + if (!(fr = aim_tx_new(sess, conn, AIM_FRAMETYPE_FLAP, 0x02, 10+1+strlen(sn)))) return -ENOMEM; snacid = aim_cachesnac(sess, 0x0003, 0x0005, 0x0000, sn, strlen(sn)+1); diff -r 64b4c69c1c5e -r 7ec21662ffc2 src/protocols/oscar/im.c --- a/src/protocols/oscar/im.c Thu Sep 20 01:44:24 2001 +0000 +++ b/src/protocols/oscar/im.c Thu Sep 20 03:16:43 2001 +0000 @@ -145,7 +145,7 @@ faim_export int aim_send_im_ext(aim_session_t *sess, aim_conn_t *conn, struct aim_sendimext_args *args) { static const fu8_t deffeatures[] = { - 0x01, 0x01, 0x01, 0x02, 0x42, + 0x01, 0x01, 0x01, 0x02 }; int i, msgtlvlen; aim_frame_t *fr; @@ -962,7 +962,8 @@ aim_tlv_t *miscinfo; aim_bstream_t tbs; - miscinfo = aim_gettlv(list2, 0x2711, 1); + if (!(miscinfo = aim_gettlv(list2, 0x2711, 1))) + return 0; aim_bstream_init(&tbs, miscinfo->value, miscinfo->length); args->info.icon.checksum = aimbs_get32(&tbs); diff -r 64b4c69c1c5e -r 7ec21662ffc2 src/protocols/oscar/info.c --- a/src/protocols/oscar/info.c Thu Sep 20 01:44:24 2001 +0000 +++ b/src/protocols/oscar/info.c Thu Sep 20 03:16:43 2001 +0000 @@ -210,6 +210,7 @@ * 0x0008 Unknown bit 4 * 0x0010 Free (AIM) user * 0x0020 Away + * 0x0400 ActiveBuddy * */ outinfo->flags = aimbs_get16(bs); @@ -444,7 +445,7 @@ * Normally contains: * t(0001) - short containing max profile length (value = 1024) * t(0002) - short - unknown (value = 16) [max MIME type length?] - * t(0003) - short - unknown (value = 7) + * t(0003) - short - unknown (value = 10) */ static int rights(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_modsnac_t *snac, aim_bstream_t *bs) { diff -r 64b4c69c1c5e -r 7ec21662ffc2 src/protocols/oscar/login.c --- a/src/protocols/oscar/login.c Thu Sep 20 01:44:24 2001 +0000 +++ b/src/protocols/oscar/login.c Thu Sep 20 03:16:43 2001 +0000 @@ -82,7 +82,6 @@ * valid, a 0017/0007 comes back, which is the signal to send it the main * login command (0017/0002). * - * XXX make ICQ logins work again. */ faim_export int aim_request_login(aim_session_t *sess, aim_conn_t *conn, const char *sn) { @@ -93,7 +92,7 @@ if (!sess || !conn || !sn) return -EINVAL; - if ((sn[0] >= '0') || (sn[0] <= '9')) + if ((sn[0] >= '0') && (sn[0] <= '9')) return goddamnicq(sess, conn, sn); sess->flags |= AIM_SESS_FLAGS_SNACLOGIN; @@ -757,6 +756,7 @@ * 2 Advisory upgrade * 3 System bulletin * 4 Nothing's wrong ("top o the world" -- normal) + * 5 Lets-break-something. * */ id = aimbs_get16(bs); diff -r 64b4c69c1c5e -r 7ec21662ffc2 src/protocols/oscar/oscar.c --- a/src/protocols/oscar/oscar.c Thu Sep 20 01:44:24 2001 +0000 +++ b/src/protocols/oscar/oscar.c Thu Sep 20 03:16:43 2001 +0000 @@ -43,6 +43,7 @@ #include "proxy.h" /*#include "pixmaps/cancel.xpm"*/ +#include "pixmaps/ab.xpm" #include "pixmaps/admin_icon.xpm" #include "pixmaps/aol_icon.xpm" #include "pixmaps/away_icon.xpm" @@ -53,6 +54,8 @@ #define USEROPT_AUTH 0 #define USEROPT_AUTHPORT 1 +#define UC_AB 32 + #define AIMHASHDATA "http://gaim.sourceforge.net/aim_data.php3" static int gaim_caps = AIM_CAPS_CHAT | @@ -1130,6 +1133,8 @@ info = va_arg(ap, struct aim_userinfo_s *); va_end(ap); + if (info->flags & AIM_FLAG_ACTIVEBUDDY) + type |= UC_AB; if (info->flags & AIM_FLAG_UNCONFIRMED) type |= UC_UNCONFIRMED; if (info->flags & AIM_FLAG_ADMINISTRATOR) @@ -2374,6 +2379,8 @@ } static char **oscar_list_icon(int uc) { + if (uc & UC_AB) + return (char **)ab_xpm; if (uc & UC_UNAVAILABLE) return (char **)away_icon_xpm; if (uc & UC_AOL)