]> andersk Git - libfaim.git/commitdiff
- Wed Sep 19 18:50:34 PDT 2001
authormid <mid>
Thu, 20 Sep 2001 01:54:15 +0000 (01:54 +0000)
committermid <mid>
Thu, 20 Sep 2001 01:54:15 +0000 (01:54 +0000)
  - 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.)

BUGS
CHANGES
include/aim.h
src/buddylist.c
src/im.c
src/info.c
src/login.c
utils/faimtest/faimtest.c

diff --git a/BUGS b/BUGS
index 548930d8830082b64b8a2e7d445102bbd3de6c0b..9ac15202cfde19d8e8e9b95d217c972855725769 100644 (file)
--- a/BUGS
+++ b/BUGS
@@ -3,6 +3,12 @@ aim.h
 -----
   - 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 --git a/CHANGES b/CHANGES
index b8178e942a63cc72af3423532fb83f229d5ca49d..7057e7ea7dd1b575e1903697938969b70703a588 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -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.
index 32fa71397030900373e7bb6af2cbbd981256dc8f..91111dd78792890f365e850dc9847523e78af6d9 100644 (file)
@@ -399,6 +399,10 @@ struct aim_userinfo_s {
 #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
 
index 975fccf9dfa514603fa568f4334daafbdb17fec0..c80957677ac212e2c5b66fb807bc8d9c7b212b35 100644 (file)
@@ -127,7 +127,7 @@ faim_export int aim_remove_buddy(aim_session_t *sess, aim_conn_t *conn, const ch
        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);
index 4a604d8f4e5f212ad28c4b9f55d316a6a499137e..84454b5c25ee716baac7a7f84f04264664158ba6 100644 (file)
--- a/src/im.c
+++ b/src/im.c
@@ -145,7 +145,7 @@ faim_export fu32_t aim_iconsum(const fu8_t *buf, int buflen)
 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 @@ static int incomingim_ch2_buddyicon(aim_session_t *sess, aim_module_t *mod, aim_
        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);
index 5ae956dd435eb66a4b3767b89328a25a67a68a9b..99330b56117af1bcbc6e50af944985ee492f4b9a 100644 (file)
@@ -210,6 +210,7 @@ faim_internal int aim_extractuserinfo(aim_session_t *sess, aim_bstream_t *bs, st
                         *      0x0008  Unknown bit 4
                         *      0x0010  Free (AIM) user 
                         *      0x0020  Away
+                        *      0x0400  ActiveBuddy
                         *
                         */
                        outinfo->flags = aimbs_get16(bs);
@@ -444,7 +445,7 @@ faim_export int aim_0002_000b(aim_session_t *sess, aim_conn_t *conn, const char
  * 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)
 {
index 4cce808a4ba51ab721491dbd970db7fa872cbe69..809958be8ed7169ef65ce36f25ae494ff0cbbc60 100644 (file)
@@ -82,7 +82,6 @@ static int goddamnicq(aim_session_t *sess, aim_conn_t *conn, const char *sn)
  * 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 @@ faim_export int aim_request_login(aim_session_t *sess, aim_conn_t *conn, const c
        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 @@ static int motd(aim_session_t *sess, aim_module_t *mod, aim_frame_t *rx, aim_mod
         *   2 Advisory upgrade
         *   3 System bulletin
         *   4 Nothing's wrong ("top o the world" -- normal)
+        *   5 Lets-break-something. 
         *
         */
        id = aimbs_get16(bs);
index f5b8e2751167b9a02e6c9de467de1e062ee0c7cc..45367aa2485bd1ebed9880ae3e08a46afa66bed4 100644 (file)
@@ -913,6 +913,7 @@ static int faimtest_memrequest(aim_session_t *sess, aim_frame_t *fr, ...)
 
 static void printuserflags(fu16_t flags)
 {
+
        if (flags & AIM_FLAG_UNCONFIRMED)
                dinlineprintf("UNCONFIRMED ");
        if (flags & AIM_FLAG_ADMINISTRATOR)
@@ -929,6 +930,9 @@ static void printuserflags(fu16_t flags)
                dinlineprintf("ICQ? ");
        if (flags & AIM_FLAG_UNKNOWN80)
                dinlineprintf("UNKNOWN80 ");
+       if (flags & AIM_FLAG_ACTIVEBUDDY)
+               dinlineprintf("ACTIVEBUDDY ");
+
        return;
 }
 
This page took 0.152201 seconds and 5 git commands to generate.