No release numbers
------------------
+ - Tue Sep 11 04:42:28 PDT 2001
+ - Fix faim_internal/export confusion for the TLV functions
+ - Add aim_addtlvtochain_userinfo() (used by AP)
+ - Clean up ICBM Channel 1 parsing ever so slightly
+ - Add multipart message support in both directions, and some
+ fun examples of it in faimtest.
+ - Yes, I'm insane.
+
+ - Mon Sep 10 06:15:43 PDT 2001
+ - Remove $Id line from md5.h. I really really hate those things.
+ - Remove all that locking crap. It never worked right anyway.
+ - Add conn->inside for things that should never ever be seen by clients
+ - Store supported groups list for each connection
+ - Support migrations.
+ - faimtest now theoretically supports doing this. It happens so rarely
+ that it makes it difficult to test. For more complicated clients, a
+ flag will have to be kept so that some things that happen during login
+ don't get triggered the second time around. But faimtest doesn't have
+ such problems.
+ - Added some random commentary.
+
+ - Sun Sep 9 03:01:28 PDT 2001
+ - Three fixes in directim for gaim. It works now. Yay.
+
+ - Sat Sep 8 21:26:27 PDT 2001
+ - Minor bug directim_connect
+
+ - Sat Sep 8 20:18:34 PDT 2001
+ - Split up the ICBM Channel 2 handlers a bit more
+ - Add a stub parser for recieving buddy lists. It will stay that way until
+ someone decides on a good API for passing lists like this to the client.
+ In case someone does, the same standard will be used for setbuddylist and
+ the as yet nonexistant support for server-side buddy lists.
+ - Make infochange work again. I still don't like it, but I don't want to
+ fix it.
+
+ - Sat Sep 8 19:05:05 PDT 2001
+ - Redo ICQ login
+ - Fix search by email (oops).
+
+ - Sat Sep 8 17:07:09 PDT 2001
+ - Fix directim so you can do it more than once without crashing.
+ - This removes the connect/disconnect callbacks. They were pointless, as
+ you can get the same information at a better spot by looking for when
+ aim_getcommand returns -1, just like is done for FLAP connections.
+ - (This was causing aim_conn_kill to be called twice for the same connect,
+ once in the client callback, and once more when aim_getcommand returned
+ the -1).
+ - Add aim_conn_(close|kill)_rend(). This is for destroying the cookie and
+ the internal data sections in one spot.
+ - Fix a bug in aim_connrst (and hence aim_logout()) that caused intdata/priv
+ to not be freed in those cases. Evil.
+
+ - Sat Sep 8 07:32:27 PDT 2001
+ - Clean up ft.c slightly. Direct IM now works. In both directions.
+ - This could still use a lot more help. It should use bstreams more.
+
+ - Sat Sep 8 00:55:46 PDT 2001
+ - Chatnav loop fix. (Err. I shouldn't code when I'm that tired.)
+ - Remove some things from BUGS
+ - Remove USE_MACROS from faimconfig.h. Not used, and frivelous when it was.
+
+ - Fri Sep 7 21:18:51 PDT 2001
+ - Make icon field names uniform
+ - Add AIM_IMFLAGS_CUSTOMFEATURES. This allows the client to send/recieve
+ the field in IMs that show client information.
+ - This can be used to identify other open source OSCAR clients, if any
+ one is interested.
+ - Increase the size of args->icbmflags to 32bits
+ - Make sure that extended-only flags are not set for aim_send_im()
+
+ - Fri Sep 7 19:59:43 PDT 2001
+ - Fix buddyicons. Yay! (checksums are 32bits all the time. duh.)
+
+ - Mon Sep 3 18:48:26 PDT 2001
+ - Reformat everything to use real tabs (and to my latest coding style)
+ - Abstract out the numerical data types to fu8/16/32_t for portability.
+ - AIM_FRAMETYPE_OSCAR -> AIM_FRAMETYPE_FLAP. This makes more sense.
+ - aim_conn_t's FLAP sequence number was a signed int. Oops.
+ - Get rid of the 'struct' on all types suffixed with _t. That's been
+ annoying me for a while. They're all real typedefs now.
+ - Yes, client people are going to be rather annoyed by this. But it
+ doesn't stop there. Keep reading.
+ - Make the 'struct aim_rxcblist_t' type local to rxhandlers.c.
+ - Combine the command_tx_struct and command_rx_struct into aim_frame_t.
+ - Mostly aim_frame_t is command_rx_struct. For command_tx_struct, the
+ same structure is used, except where ->sent was, ->handled is now
+ used.
+ - This makes things a lot easier, everywhere.
+ - Get rid of ->lock. Pointless. If libfaim is ever preemptible, it
+ has much more important problems than that.
+ - Welcome to aim_bstream_t. No more direct buffer accesses. Anywhere.
+ - In fact I plan on getting rid of the aimutil macros completly.
+ - This isn't complete yet. It will be better later. Believe me. Maybe
+ even make more sense.
+ - More advanced and configurable boundschecking is coming, too.
+ - Clean up lots of stuff, everywhere.
+ - Rearrange the implementation of the TLV functions, saving lots of code.
+ - I'm rather pleased with the way some things got implemented with this,
+ particularly in places where TLVs contain TLVs.
+ - Get rid of aim_puttlv_() functions. Those were gross. Use tlvchains.
+ - XOR login is temporarily broken. I'll fix it someday. ("Someone" needs it.)
+ - Fix the return values of most everything -- OSCAR functions should all
+ return 0 on sucess, negative errno on failure.
+ - There are several things braced with #ifdef MID_REWROTE_ALL_THE_CRAP.
+ Consider that code broken and nonfunctional for now.
+ - I think I may have broken buddy icons. Remind me to fix that.
+ - Renovate faimtest substantially. Reformat, split up, update to new types.
+
+ - Wed Aug 29 16:59:24 PDT 2001
+ - Pass up entire icon triplet (checksum/length/timestamp) in all cases
+ that it is recieved.
+ - Eric was paying more attention than I am.
+
+ - Sat Aug 25 19:46:38 PDT 2001
+ - Pass "Maximum visible message length" to client in chat info update
+ - This is the real maximum message length now. There is still a
+ "complexity" limit that will prevent you from sending messages
+ even if they are less than this limit (102 right now), but I don't
+ know how that is calculated.
+
+ - Sat Aug 25 19:19:16 PDT 2001
+ - Keep parsing missed calls for entire packet
+ - This is really easy to test now. Just talk to someone with
+ their minmsginterval set high (like 10seconds or something)
+
+ - Sat Aug 25 18:35:13 PDT 2001
+ - aim_sendconnack -> aim_sendflapver
+ - Remove addicbmparam. This was identical to aim_seticbmparam
+ - aim_seticbmparam now takes a struct with the parameters in it. See
+ faimtest. !!! REQUIRES CLIENT CHANGES if you use aim_seticbmparam, which
+ you really really should -- the defaults are insanely limited
+ - Fix rendezvous IM parsing that I broke last time.
+ - ICBM parameter info callback gives same struct as above. !!! REQUIRES
+ CLIENT CHANGES
+ - Reformat login.c and part of faimtest.c
+ - !!! NOTE: don't do anything in your motd handler. If you do, it will
+ get run twice, sine for some reason AOL is sending two MOTDs now.
+
+ - Wed Aug 22 22:11:18 PDT 2001
+ - Reformat the rest of im.c
+ - Fix a few returns, particularly in error cases
+
+ - Thu Aug 16 06:17:57 PDT 2001
+ - Reformat a bit of im.c and aim.h
+ - Rearrange encoding/subencoding checks in IM parsing
+
+ - Fri Aug 3 14:19:37 EDT 2001
+ - Naje aun_sebd_un retyrn sabe vakyes
+
+ - Thu Aug 2 13:28:37 EDT 2001
+ - Uhm. Why does arcanejill think its in EDT?
+ - Cache the username on warnings so errors work right.
+ - Someday, I'm going to convert all of libfaim to that formatting style, too.
+
+ - Wed Jun 27 00:13:20 EDT 2001
+ - Some comments about UNICODE in faimtest.
+
+ - Fri Jun 15 17:51:27 EDT 2001
+ - Make faimtest compile on RH7.1 (new gcc).
+ - Add aim_conn_getsess()
+ - Add aim_getconn_type_all() and aim_getconn_fd().
+ - Make aim_connrst() and aim_conn_getnext() static to conn.c.
+ - Why does arcanejill think she is in EDT? Oh well.
+
+ - Thu Jun 14 17:37:47 PDT 2001
+ - Rearrange aim_setprofile(). It will now let you _not_ send a profile,
+ if you really want to (pass NULL). Note that this is quite different
+ than sending a _blank_ profile. Also fixes the "asci" bug.
+
+ - Mon Jun 4 12:57:46 PDT 2001
+ - Fix chatnav. Whoops.
+
+ - Mon Jun 4 12:45:18 PDT 2001
+ - Don't use snacid's for generic requests (gets around recent blocks)
+ - If they start doing snacid-based blocks again, an audit will have
+ to be done to see what WinAIM requests uses snacids for and what
+ it leaves it blank for. That will be tedious and I'm not going to
+ do it.
+
+ - Thu May 31 23:00:50 PDT 2001
+ - Store two hardcoded hashes in login.c. Sigh.
+ - Add prototype for aim_callhandler_noparam in aim_internal.h
+
+ - Sat May 26 03:58:27 PDT 2001
+ - Aha! This is why I could never get icons to work before.
+ - Luckily the checksum is painfully simple.
+
+ - Sat May 26 01:37:39 PDT 2001
+ - So this is my big merge with the ActiveBuddy version...
+ - Remove use of tlvchains from IM parsing for better performance
+ - Add in buddy icon support
+ - Add support for sending UNICODE messages.
+ - Split up the more complicated options to aim_send_im into a structure
+ that is passed to aim_send_im_ext(). This makes it easier to send
+ simple messages, and only slightly harder to send complex ones.
+ - aim_send_im_ext() must be used if you're using buddy icons and/or you
+ are sending UNICODE messages.
+ - UNICODE is fully explained in commentary above aim_send_im_ext() in im.c.
+ - The ISO-8859-1 option is also added. Use when necessary, to avoid making
+ WinAIM barf.
+ - This removes the msglen parameter to aim_send_im because that was only
+ needed to do UNICODE, which can now only be done by aim_send_im_ext.
+
+ - Wed May 23 18:05:46 PDT 2001
+ - I upgraded libtool. Which broke the faimtest makefile.
+ - Parse locate rights
+ - You shouldn't ask so many questions, Eric.
+
+ - Wed May 16 12:48:13 PDT 2001
+ - Thanks Rob and Eric
+
+ - Thu May 10 17:37:23 PDT 2001
+ - I haven't had lunch yet. What should I have?
+
+ - Wed May 9 15:21:51 PDT 2001
+ - I had pizza for lunch.
+
+ - Mon May 7 15:19:55 PDT 2001
+ - Rename rxhandler_t to aim_rxhandler_t. This has been
+ bugging me for a while.
+
+ - Thu May 3 15:47:23 PDT 2001
+ - Clean up getcap/putcaps
+ - Add GAMES2 and SENDBUDDYLIST caps (the latter is new in winaim 4.7beta)
+ - Update hash to latest value
+
+ - Wed Apr 25 11:51:39 PDT 2001
+ - I think this was a bug.
+
+ - Tue Apr 24 17:36:03 PDT 2001
+ - Let Eric generate the hash if he wants.
+
+ - Mon Apr 23 15:58:11 PDT 2001
+ - On a clear day, you can see forever.
+
+ - Thu Mar 29 13:05:50 PST 2001
+ - Less leaks.
+
+ - Thu Mar 29 14:45:22 CST 2001 (jbm)
+ - Add module capability to the 0001/001f stuff (jbm)
+
+ - Wed Mar 28 21:20:08 PST 2001
+ - Add flags arg to aim_chat_send_im()
+ - Add msglen arg to aim_send_im and aim_chat_send_im
+ - This will make more sense when I make the UNICODE commit (tomorrow?)
+
+ - Wed Mar 28 16:51:25 PST 2001
+ - I decided it was a good day while I was figuring out that it was a bad day.
+ - See faimtest and login.c::memrequest().
+ - Hopefully I'm done for a while.
+
+ - Tue Mar 27 19:15:10 PST 2001
+ - I haven't decided yet whether today is a good day or a bad day.
+ - Probably both.
+ - More later.
+
+ - Mon Mar 26 16:08:45 PST 2001
+ - Why didn't anyone tell me buddy-offgoing wasn't working?
+ - *** REQUIRES CLIENT CHANGES... buddy-offgoing now passes a userinfo
+ struct (its now identical to buddy-oncoming)
+
+ - Mon Mar 26 15:57:41 PST 2001
+ - Hrmph.
+ - Debuglevel wasn't getting set properly by aim_session_init
+
+ - Sat Mar 24 03:16:32 UTC 2001
+ - vaargs to msgerror and locateerror swapped
+ - ** CLIENT CHANGE: Reason code comes before SN now. This is so that
+ the backend code for all three error handlers is identical.
+ - aim_getinfo() returns -1 on failure (hah! I don't think anyone checks
+ return codes from libfaim anyway...they're known for their
+ inconsistency and lack of sensicality)
+ - Remove _DEFAULT handlers in faimtest...
+ - They were not consistent.
+ - They did not make sense.
+ - They did not work anyway.
+ - Most of them were #if 0'd.
+ - Add ICBM Parameter Info callback... you can catch this if you want.
+ - aim_getbuildstring() now takes a buffer instead of returning static (ew!)
+ - Clean up, "factorize", etc
+ - More stuff... (Only one "middle handler" left in rxhandlers.c!)
+
+ - Fri Mar 23 05:42:11 UTC 2001
+ - Export aim_encode_password_md5()
+ - Add middle handler for 000b/0002 (min report interval)
+ - Add aim_session_kill()
+ - CLIENTS MUST CALL THIS either in addition to or instead of
+ aim_logoff(), particularly if you keep lots of sessions open.
+ (Sessions now contain dynamically allocated memory which must be freed.)
+ - Oh, and some other stuff...
+
+ - Fri Mar 23 01:45:28 UTC 2001
+ - Add AIM_CLIENTINFO_KNOWNGOOD
+ - Fix a few details in aim_send_login (thanks temas)
+ - Prevent aim_rxhandlers from being called recursively
+ - This is something that has been in my PENDING_AIM mailbox for over
+ a year now. I figured it was trivial enough to throw in. EveryBuddy
+ wanted it, but I don't remember why. It should never happen anyway.
+ - Use AIM_CLIENTINFO_KNOWNGOOD
+ - This lets faimtest log in after today's round of AOL being mean.
+
+ - Fri Mar 16 23:12:58 UTC 2001
+ - Remove one level from aim_rxdispatch()
+
+ - Wed Mar 14 20:21:49 UTC 2001
+ - Clean up declarations of TLV functions (ie, const)
+ - Add -o and -O to faimtest (I didn't use your patch, josh)
+
+ - Wed Mar 14 03:11:03 UTC 2001
+ - Err...I'll commit before I go home. More faimtest crap.
+
+ - Tue Mar 13 20:23:04 UTC 2001
+ - Fiddle with faimtest a bit.
+
+ - Sun Mar 11 06:02:19 UTC 2001
+ - Banish socklen_t.
+
+ - Sun Mar 11 05:51:45 UTC 2001 (jbm)
+ - Split off aim_internal.h
+ - Add aim_tx_cleanqueue()
+ - Remove sn from directim callback (use priv)
+
+ - Mon Mar 5 01:19:48 UTC 2001
+ - Fix typo in last CHANGES entry.
+ - Add fix from Eric to keep efence from complaining about malloc(0)
+ - Add .cvsignore files (also from Eric)
+ - Throw in josh's latest OFT/ODC kludges
+ - Completly remove all calls to printf and (unbounded) sprintf
+ - Add aim_setdebuggingcb()
+ - Remove preprocessor-based debug semantics (faimconfig.h)
+ - faimdprintf() now calls a user-specified callback to do printing
+ - Rearrange aim_tx_new() parameters to be more sensical, add sess
+ - Do some sanity checking in aim_tx_new()
+ - Add #defines to keep printf from compiling inside libfaim
+ - Who knows what else. (in total, this patch is nearly 5k lines)
+
+ - Fri Mar 2 02:17:22 UTC 2001
+ - Add aim_fingerprintclient(). (AB will trust this, but you shouldn't.)
+ - Add some EXTRA_DIST to Makefile.am
+
+ - Mon Feb 26 01:46:34 UTC 2001
+ - Fix swapped bytes in aim_caps[]. Thanks to
+ Bruce Miller <bmiller@ics.uci.edu> for pointing this out.
+
+ - Sun Feb 11 01:07:36 UTC 2001
+ - Make secondary connections to the authorizer work again
+ - Make aim_auth_changepasswd() work again.
+ - Add aim_auth_setversions(), aim_auth_getinfo(), aim_auth_setemail(),
+ aim_auth_reqconfirm()
+ - Add middle handlers for responses to all of above.
+ - Add examples of above to faimtest (start with 'reqauth')
+
+ - Fri Feb 9 22:31:22 UTC 2001
+ - Add aim_tx_setenqueue().
+
+ - Thu Feb 8 20:12:39 UTC 2001
+ - Let TLV functions out of aim.h if FAIM_NEED_TLV is defined.
+
+ - Thu Feb 8 02:31:25 UTC 2001
+ - Remove aim_purgecookies() -- never used anyway
+ - Clean up a few bits of aim_msgcookie.c
+ - Remove AIM_CONN_MAX constant (hasn't been relevent in ages)
+ - Change commentary on synchro in aim.h
+ - Add NOPLOCKS and make them default
+ - Make faim/aim.h more of a mess; try to keep interfaces hiddenish.
+ - Add #define FAIM_INTERNAL to top of every file
+ - Remove aim_countconn (no one uses it anyway)
+ - Add aim_cloneconn() (cringe.)
+ - Throw in josh's getfile patch (and then munge it enough to break it)
+ - Add getopt() to faimtest.
+ - Remove aim_buildcode.h/mkbuildinfo.sh crap.
+ - Clean up aim_cleansnacs()
+ - There may have been other stuff too. As always, the diff is the
+ most accurate changelog there is.
+ - *** FT is currently more broken than it was before. Also, this patch
+ introduces even more memory leaks. You've been warned.
+
+ - Sun Dec 17 07:19:04 UTC 2000
+ - Update the capability block list
+
+ - Sat Dec 16 01:34:19 UTC 2000
+ - Rename paramid to rateclass
+ - Add a long comment about the rate system
+ - Add a few other comments
+ - Clean up aim_bos_clientready().
+
+ - Fri Dec 15 23:35:01 UTC 2000
+ - Add genericerr callback/middle.
+ - This is for catching the errors that come back, for instance, from
+ sending a SNAC that isn't supported by the host (such as the
+ Watcher Request SNAC).
+
+ - Fri Dec 15 21:51:32 UTC 2000
+ - Add more info to evilnotify callback
+ - Add a few values to aim_cbtypes.h
+
+ - Fri Dec 15 20:41:15 UTC 2000
+ - Revise README
+ - Make aimdebugd compile
+ - Typos
+
+ - Fri Dec 15 02:04:12 UTC 2000
+ - Parse rate changes *properly*
+ - Add sample code to faimtest demonstrating my approximations
+ on how to fiddle with aim_conn_setlatency() in relation
+ to the rate changes (properly wildly conservative). [I also
+ copied this stuff into mfaim.]
+
+ - Thu Dec 14 03:39:34 UTC 2000
+ - Change the 0x01 to a 0x00 in auth request to make buddy lists work again
+ - Rearrange bytes in setversions() to match winaim
+ - Add several cachesnac() calls
+ - Add hostonline and hostversions parsers (superfluous)
+
+ - Wed Dec 13 02:26:39 UTC 2000
+ - Create aim_cachesnac()
+ - Some long overdue cleanups
+
+ - Wed Dec 13 00:38:56 UTC 2000
+ - Added the client update/version info to the authresp callback
+ - Added the prototype for aim_getfile_send_chunk to aim.h
+
+ - Tue Dec 12 23:02:41 UTC 2000
+ - Got pissed off at sess->logininfo. Got rid of it.
+ - Now pass all that stuff in as varargs, like it should be.
+ - *** Look at the changes to faimtest. You'll also need to
+ change anything in your code that references sess->logininfo
+ to reference sess->sn instead. The rest of the other info
+ is now unavailable (it was before, too, it just didnt look like it).
+ - A few other minor cleanups.
+ - Added aim_gettlv8/16/32, aim_puttlv_8, and aim_addtlvtochain_noval.
+ - Added that short 0x004a TLV to the auth request, like WinAIM 4.3.
+
+ - Mon Dec 4 23:46:35 UTC 2000
+ - Add exchange to the create response callback (doh!)
+
+ - Sat Dec 2 02:14:45 UTC 2000
+ - Dumb bug in aim_clearhandlers()
+
+ - Fri Dec 1 23:48:38 UTC 2000
+ - Store exchange along with room name in the great chat hack
+
+ - Fri Dec 1 22:25:56 UTC 2000
+ - Fix numerous tiny (but sometimes catastrophic) bugs dealing
+ with connection death (particularly with chat connections)
+ - *** Any connection with a -1 fd will get returned by aim_select
+ immediatly now... your code probably already handles this implicitly.
+
+ - Wed Nov 29 17:31:23 UTC 2000
+ - Rewrote some of the msgcookie stuff
+ - Changed cachecookies to uncachecookies where it makes sense (arg!)
+ - Minor other stuff
+
+ - Fri Nov 10 08:24:34 UTC 2000
+ - Add sess->flags (replaces sess->snaclogin)
+ - Remove odd setstatus call in chat parser
+ - Remove aim_tx_enqueue macro, replace with a smarter one
+ - If a connection is in progress, enqueue instead of calling
+ the client-specified queuer
+ - Add support for nonblocking connects through the
+ AIM_SESS_FLAG_NONBLOCKCONNECT flag to aim_session_init()
+ - Add AIM_CB_SPECIAL_CONNCOMPLETE callback. Not real useful.
+ - Add AIM_CB_SPECIAL_FLAPVER callback. Can be used as an alternate
+ way of starting the login process, or just to look like you
+ know what you're doing. Fixed associated inconsistencies
+ in aim_rxhandlers too.
+ - Fix some connection status stupidities in faimtest.
+
+ - Wed Nov 8 13:11:18 UTC 2000
+ - Reenable/reimplement older login, but only use for ICQ UINs
+ - This is a fairly ugly hack. But...eh. It works.
+ - You'll need to remove the aim_sendconnack() before the
+ call to aim_request_login. It will now do it automatically
+ if its needed. (hint: ***CLIENT CHANGE***)
+
+ - Wed Nov 8 02:23:25 UTC 2000
+ - I'm trying out using a modified version of the kernel-doc scripts
+ to help document the libfaim code a bit. See aim_conn.c and
+ aim_tlv.c, as well as the scripts in utils/docs.
+
+ - Wed Oct 25 17:52:20 UTC 2000
+ - Cleanup warnings from newer gcc's (RH7.0)
+ - Aparently newer gcc's don't let you do as strong of integer types
+ on va_arg as older ones... So, let me know if this breaks on your
+ compiler
+
- Tue Oct 17 02:10:13 UTC 2000
- Rearrange a few things