- 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.)
-----
- 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()
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.
#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
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);
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;
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);
* 0x0008 Unknown bit 4
* 0x0010 Free (AIM) user
* 0x0020 Away
+ * 0x0400 ActiveBuddy
*
*/
outinfo->flags = aimbs_get16(bs);
* 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)
{
* 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)
{
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;
* 2 Advisory upgrade
* 3 System bulletin
* 4 Nothing's wrong ("top o the world" -- normal)
+ * 5 Lets-break-something.
*
*/
id = aimbs_get16(bs);
static void printuserflags(fu16_t flags)
{
+
if (flags & AIM_FLAG_UNCONFIRMED)
dinlineprintf("UNCONFIRMED ");
if (flags & AIM_FLAG_ADMINISTRATOR)
dinlineprintf("ICQ? ");
if (flags & AIM_FLAG_UNKNOWN80)
dinlineprintf("UNKNOWN80 ");
+ if (flags & AIM_FLAG_ACTIVEBUDDY)
+ dinlineprintf("ACTIVEBUDDY ");
+
return;
}