changeset 2315:7ec21662ffc2

[gaim-migrate @ 2325] ha. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Thu, 20 Sep 2001 03:16:43 +0000
parents 64b4c69c1c5e
children ebb5ecb2cd5b
files pixmaps/Makefile.am pixmaps/ab.xpm src/protocols/oscar/BUGS src/protocols/oscar/CHANGES src/protocols/oscar/aim.h src/protocols/oscar/buddylist.c src/protocols/oscar/im.c src/protocols/oscar/info.c src/protocols/oscar/login.c src/protocols/oscar/oscar.c
diffstat 10 files changed, 57 insertions(+), 7 deletions(-) [+]
line wrap: on
line diff
--- 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			\
--- /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",
+"  ....        ",
+"  .++.        ",
+"..........    ",
+"@######@@.    ",
+"@######@@.    ",
+"@#.##.#@@.    ",
+"@######@@.    ",
+"@.####.@@.    ",
+"@.####.@@.    ",
+"@#....#@@.    ",
+"@######@@.  . ",
+"..............",
+".............."};
--- 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()
--- 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.
--- 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
 
--- 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);
--- 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);
--- 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)
 {
--- 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);
--- 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)