No release numbers
------------------
+ - Mon Aug 28 03:11:15 GMT 2000
+ - Adds lots of comments
+ - Add AIM_CLASS_ALLUSERS constant for setgrouppermmask()
+ - Add warnings support (jbm)
+
+ - Mon Aug 21 22:00:18 UTC 2000
+ - Implement SNAC login MD5 (thanks to Sonuvbob for that one)
+ - Clear out all that old login cruft. Much cleaner now.
+ - REQUIRES CLIENT CHANGES (see faimtest)
+
+ - Fri Aug 18 19:52:54 UTC 2000
+ - Fix the non-pthread bug
+
+ - Thu Aug 17 23:19:40 UTC 2000
+ - A few more leak fixes (only a few left to go...)
+
+ - Thu Aug 17 23:08:08 UTC 2000
+ - More leak fixes (eric, eric, eric...)
+
+ - Thu Aug 17 22:53:03 UTC 2000
+ - Change the SNAC cache to a hash instead of list
+ - Fixed a few leaks relating to aim_gettlv_str()
+
+ - Thu Aug 17 14:04:18 UTC 2000
+ - Fix the fd closing bug introduced last week
+
+ - Tue Aug 8 04:25:35 UTC 2000
+ - Preserve subtype and priv after aim_conn_close
+
+ - Tue Aug 8 04:15:47 UTC 2000
+ - Fixed double-calling of faim_mutex_init
+ - conn->type preserved after aim_conn_close
+
+ - Mon Jul 17 01:56:31 UTC 2000
+ - Added 0004/000c callback (for message acknowledgments)
+ - This goes with the AIM_IMFLAGS_ACK option that has been there
+ for ages now. When you send a message with that option, you'll
+ get a message back containing the screenname, telling you it was sent.
+ - Moved the aim_conn_kill's out of aim_get_command() and into
+ the client. They're only closed in there now. This is so that you
+ can detect what type of connection died. You'll want to handle
+ BOS and chat connections in special ways most likely. You'll also
+ need to call aim_conn_kill when you're done with it.
+ - Added/fixed the Rate Change handlers. Now passes up a long that
+ should contain a number. I'm currently in pattern-searching mode.
+
+ - Sun Jul 16 22:59:39 GMT 2000
+ - Fixed the locking in the rendezvous code. Hopefully is safe now.
+
+ - Sun Jul 16 11:03:28 GMT 2000
+ - Fixed 0001/000a chat printf. (Actually a one liner a few days ago.)
+ - Started integrating josh's 3k rendezvous patch. Currently only
+ directim is working. And its got bugs. But he's not online
+ right now, so I can't bitch. I'd love to bitch here, but I'm
+ tired.
+ - Can definitly accept directim connections and send/recieve.
+ - See faimtest for the new callbacks. (Urg.)
+ - Here weeee gooooo. (Not sure if this will break everyone or not.)
+
+ - Fri Jun 30 00:04:47 UTC 2000
+ - Removed the forceful ICQ-related warnings, just in case they're wrong
+ - Added three new fields to the client info.
+ - **REQUIRES CLIENT CHANGES -- see faimtest for new initializer
+ - Cleaned up aim_send_login()
+ - Put in a nice hidious fix for AOL's latest bit of the drama. See
+ aim_readtlvchain() for the details.
+
+ - Mon Jun 26 07:53:02 UTC 2000
+ - Added utils/aimdebugd for playing with things -- see the README
+ - Added aim_im.c::aim_parse_outgoing_im(). Probably not useful
+ unless you're writing a server or something (or hacking aimdebugd).
+ - aim_send_im() now sends the same data as AIM4 does (three more bytes)
+ - Added aim_debugconn_sendconnect() for aimdebugd-enablement.
+
+ - Sat Jun 24 02:14:07 UTC 2000
+ - Added fakelocks for platforms without pthreads or that have no
+ use for them.
+ - Added workaround for MSG_WAITALL for people with the very broken
+ libc that comes with earlier Red Hat's.
+
+ - Sat Jun 24 00:44:24 UTC 2000
+ - Support zero-type TLVs in aim_extractinfo()
+ - AOL now ocassionally throws extra zeros in so in order to break
+ clients. Aparently zero-type TLVs are a special case -- if the
+ type is zero, then _there is no length_ field. AOL are geniuses.
+ - Note that you only get these if you send a bad client string, such
+ as the top one in faimtest. If you #if 0 that one out and use the
+ second one, you'll be fine. (Unless you just want to see the message
+ for yourself. Its nifty. (FREE!))
+ - ICBM parser now uses aim_extractuserinfo() so that it can benefit
+ from the above changes, as well as clean up the whole "is it the
+ first or the second one of this type?" issue
+ - This also fixes the changes AOL made in away messages.
+ = Fixed a possible buffer overflow when AOL changes the max sn length
+ - Increased MAXSNLEN to 32 (they appear to be valid)
+ - If you start getting messages from someone called "AOL Instant
+ Messenger", see comment one, paragraph two.
+ - aim_select() now returns a -1 if there are no connections open
+ - Connections are now killed completely if there is a major error on them
+ - faimtest now calls aim_logoff() on connection error
+
+ - Fri Jun 23 22:38:47 UTC 2000
+ - Adds start of adverts support
+ - Adds aim_bos_nop(). You may want to send this occassionally
+ - Fixes aim_rxhandlers.c to work for people with three-letter
+ screen names
+
+ - The week prior to Fri Jun 16 19:37:09 UTC 2000
+ - Rethought the rendezvous stuff. DEFINIT WORK IN PROGRESS
+ - Do not bother trying to use this. This will probably break
+ your clients. You may or may not want to fix them, since
+ I may change it again soon.
+ - I REPEAT: This really is a developer-only version. It barely
+ compiles. I'm just committing it so I don't have so many
+ trees floating around.
+ - Added stuff to support OFT as well as OSCAR protocols
+ - Added aim_send_im_direct() for directim ("IM Image")
+ - Added caps getting/putting routines
+ - Added more aim_login fixes to avoid more AOL stupidity
+ - This is the same as went to libfaim-devel yesterday, so don't upgrade
+ just to get these changes.
+ - Removed aimicq_encode_password -- now use the same table
+ for both ICQ and AIM
+ - Added AUTHORS
+
+ - Tue Jun 6 01:36:48 UTC 2000
+ - Inverted gethostbyname2() check. Not sure how that ended up
+ in that state.
+ - Added some of the initial framework to support file transfers
+ - Added in a few checks for that
+ - Can currently parse and send a denial message.
+ - Added cookie caching. (Sorry, I just like saying that.)
+ - Rearranged channel 2 ICBM parsing (detects the different
+ rendezvous types better and hopefully accuratly).
+ - Killed the connection array. Now a list. (Suits the
+ upcoming features better.) --- REQUIRES CLIENT CHANGES...
+ - In most cases, you need to change aim_conn_close() calls
+ to aim_conn_kill(). This will free them as well as
+ close them. If you don't do this, you'll pollute the
+ connection list and leak memory.
+ - Possibly a few other minor things (some cleanups to faimtest for one)
+
+ - Fri Jun 2 23:27:28 UTC 2000
+ - Cleaned up aim_send_login slightly
+ - Added aimicq_encode_password to support the new hash
+ values required for logging in with ICQ
+ - Removed crash when email and/or reg status aren't
+ in the auth response (they're not in ICQ responses)
+ - So now as long as you specify a client version of
+ 4.30.3141 in the client info, and your ICQ number
+ as your screen name, you can login to ICQ via libfaim
+ and use it just like an AIM account.
+ - Added AIM_CB_SPECIAL_CONNERR callback for recieving
+ messages such as disconnect reasonses ("you logged
+ on from a different machine", etc).
+ - Added faimtest's userinfo handler to support away messages
+
+ - Fri Jun 2 15:57:27 UTC 2000
+ - Add creation time, maxmsglen, and various unknowns to chat info
+ update callback.
+ - Remove 'nothing works yet' comment from top of aim_chat.c (it works!)
+
+ - Wed May 31 01:17:24 UTC 2000
+ - Added constants for message sizes (MAXMSGLEN, MAXCHATMSGLEN)
+ - Note that the new max message size is defined as 7988bytes,
+ drastically larger than WinAIM lets you put out. This is a
+ libfaim-exclusive feature :)
+ - Reduced base buffer size on aim_send_im()
+
+ - Tue May 30 22:32:31 UTC 2000
+ - Added lock around tx seqnum to prevent that race when transmitting
+ from diverse threads. (actually committed earlier today)
+ - Added aim_meta.c and a few constants and things to keep
+ track of "releases".
+ - Added mkbuildinfo.sh to automatically update build string
+ "constants" on every invocation of 'make all'.
+
+ - Mon May 29 12:08:28 GMT 2000
+ - Rearranged aim_tx_flushqueue(); moved write operation
+ to aim_tx_sendframe()
+ - Turned aim_tx_enqueue() into a macro that calls sess->tx_enqueue,
+ a function pointer to whatever you want to use to enqueue
+ things for transmition (or not)
+ - Old aim_tx_enqueue becomes aim_tx_enqueue__queuebased. Added
+ aim_tx_enqueue__immediate for doing immediate writes. Default
+ is to use queue-based procedure.
+ - Cleaned up parts of aim_conn.c
+ - Added locking around the sockets themselves. Should allow
+ for full cross-thread usage.
+ - Unfortunatly, only pthreads are supported at this time.
+ If you don't have pthreads on your arch, implement the
+ macros your arch needs and send me a patch. (A SysV
+ semaphore implementation would be trivial, as would a
+ simple integer-based lock.)
+
+ - Sun May 21 14:59:20 GMT 2000
+ - Added infotype parameter to aim_getinfo() for requesting
+ different types of messages. AIM_GETINFO_GENERALINFO
+ will get you the normal stuff, AIM_GETINFO_AWAYMESSAGE
+ will get the normal stuff, with the profile replaced with
+ the user's away message. Also, the callback adds an
+ unsigned short to the end to give you the value that
+ was originally passed to the request.
+ - There were a few server-pertinent changes that didn't get
+ documented from last month. I have no idea what they were.
+
+ - Sun Apr 2 07:29:11 UTC 2000
+ - Redid much of the tx path to remove the superfluous copy. But
+ it touches every function that transmits. Its been a long
+ time in coming.
+ - Added caps parameter to aim_bos_setprofile(). You can now
+ control what capabilties you show up as others to
+ - Added ->capabilities to userinfo. It should be nonzero when
+ its coming off buddy oncoming information, but NOT requested
+ user info.
+
+ - Sun Apr 2 01:45:15 UTC 2000
+ - Increased AIM_CONN_MAX from 5 to 7. Precausionary only
+ - Removed deprecated TIS_TELNET_PROXY from faim/faimconfig.h
+ - Added macros for the simple integer functions in aim_util.c
+ - Removed usage of aim_failsaferead()
+ - Still not sure why I had it to begin with. I think it
+ was a remament from when we used non-blocking sockets
+ (which I don't know why I did either)
+ - Removed some of the oddities in aim_get_command()
+ - gprof showed this taking 20kns on my k6-300. Should be faster now.
+ - Added conn parameter. This should prevent aim_select() from
+ getting called too many times in a row.
+
- Thu Mar 23 08:45:40 UTC 2000
- Removed aim_countconn() > 0 check in aim_select(), its logically redundent
- Added aim_putuserinfo() (inverse of aim_extractuserinfo())