X-Git-Url: http://andersk.mit.edu/gitweb/libfaim.git/blobdiff_plain/a25832e66b80e7159f37795cff5593b748ac5f59..0589dc540706ddf1615d9085f2a68df227509ee6:/CHANGES diff --git a/CHANGES b/CHANGES index 5f1f7b0..79d5983 100644 --- a/CHANGES +++ b/CHANGES @@ -1,6 +1,529 @@ No release numbers ------------------ + - 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 + + - Mon Oct 16 20:56:59 UTC 2000 + - Remove some warnings + + - Mon Oct 9 04:24:56 CDT 2000 (jbm) + - took care of the XXXs in aim_putuserinfo() + - now use dynamic TLV count to send ("look ma, no magic!") + - now send cap blocks + - now send icq info if a numeric SN + + - Wed Oct 4 21:29:47 CDT 2000 (jbm) + - Fix borked disconnect callbacks + - Add aim_conn_in_sess() + - A little housekeeping in faimtest ("fixing" order of printf, + remove a comment) + + - Mon Sep 25 00:21:31 CDT 2000 (jbm) + - Add a couple of ICQ userinfo parses + + - Fri Sep 22 22:47:49 UTC 2000 + - Add aim_icq_setstatus() (jbm) + + - Fri Sep 22 22:35:51 UTC 2000 + - Apply jbm's patch below + - Minor cleanup in cb handler stuff + + - Thu Sep 21 20:28:20 CDT 2000 (jbm) + - DirectIM shouldn't kill us any more. + - Eliminated a potential segfault in aim_send_im_direct(). + - make tags (yay!). + - Added an aim_tx_destroy(); need to move the lib over to using it. + - Got rid of some #if 0 BS code in a couple of places + (aim_ft::establish() and aim_im::aim_parse_incoming_im_middle()). + - Added some file transfer stuff (so experimental, i haven't + had a chance to see if it causes cancer in lab animals). + - Added to faimtest for all of the above. + - Added myself to AUTHORS with Real Info. + + - Thu Sep 21 00:24:36 UTC 2000 + - Add socks5 proxy support (not tested real well, worked the + few times a tried). + - Added proxy support to faimtest. + + - Tue Sep 19 03:10:07 UTC 2000 + - Add aim_setuserinterests() and aim_setdirectoryinfo() + - Add ICQ away status + + - Thu Sep 14 00:54:48 UTC 2000 + - Added create room callback + + - Wed Sep 13 22:01:35 UTC 2000 + - Remove references to "new" and "class" for dumb C++ compilers + - Renamed userinfo->class to userinfo->flags both for clarity and C++ + - Remove some extraneous variables + + - Tue Sep 12 20:16:51 UTC 2000 + - Add aim_flap_nop() from my work tree + + - Tue Sep 12 05:06:53 UTC 2000 + - Revert the two-byte change in aim_misc, clientready + + - Tue Sep 5 04:41:45 GMT 2000 + - Few more minor things + - Added the changes needed for faimtest. + - Removed aimdebugd from default build + + - Tue Sep 5 03:47:26 GMT 2000 + - More ANSIfication for win32 + - Forgot aim_misc last time. + + - Mon Sep 4 22:08:35 GMT 2000 + - Forgot aim_snac and aim_search + + - Mon Sep 4 21:38:09 GMT 2000 + - A mild step towards ANSI compliance + - Compiles cleanly with -pedantic (except for the libc issue in socket.h) + - Fixes various sign mismatch things. There may be more, we'll see + what MSVC has to say about it. + - Add faim_internal and faim_export macros so Win32 DLL is easier + + - Sun Sep 3 23:58:17 UTC 2000 + - Portability fixes (for solaris, set the SOLARIS env var first) + + - Sat Sep 2 23:42:37 UTC 2000 + - Hopefully fix aim_snac.c bugs + - Add Buddy List Rights parser (max buddies and max watchers) + - Fix rather major problem in rxhandlers caused by missing breaks + - Add reason code for msgerr (0004/0001) callback + - Add BOS Rights parser (max permit / max deny) + - Add locate error (0002/0001) parser + - Add parser for missed calls (0004/000a) + + - Fri Sep 1 23:34:28 UTC 2000 + - Switched the read()s in rxqueue to use recv() + - Should fix the big message problem and the big buddy list problem + - Changed some values around in aim_misc to match winaim4.1 + - Added aim_addicbmparm. dunno what it does + - Cleanup the login process in faimtest (can now login in less than 2sec) + + - Fri Sep 1 00:13:04 UTC 2000 + - Avoid zero-length mallocs in aim_tlv + + - Thu Aug 31 23:40:23 UTC 2000 + - Threw in aim_select modification from nicolas + - Remove stray debugging printf in aim_tlv + + - 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()) + - Added aim_sendbuddyoncoming/offgoing() + - Rearranged loop in rxdispatch() + - Remove aim_conn_close() if connections dead in aim_get_command() + + - Thu Mar 23 00:44:32 UTC 2000 + - Added a check to purge_rxqueue to skip handled commands + + - Mon Mar 20 05:30:59 UTC 2000 + - Added some server-only functions for login + - Added aim_counttlvchain() + - Added aim_sncmp() and aim_snlen() + + - Sun Mar 19 06:07:52 UTC 2000 + - Added a parameter to aim_select to return event type + - REQUIRES CLIENT CHANGES. + - For the most part rewrote the tx and rx queuing code + - Should fix many, many outstanding problems in and related + to that code, including one that keeps memory from freeing + - Fixed several bugs in various places + - Reformated a lot of code, and did general cleanups + - Should have a generally more robust lib now. + + - Sun Mar 12 00:07:40 UTC 2000 + - Fixed a robustness problem in aim_handleredirect_middle() + - Added TLV chain creation routines (yes, aimd is progressing) + + - Mon Jan 3 04:07:55 UTC 2000 + - Fixed bug in aim_snac.c + - Fixed condition where commands read from connections that have + been closed were still left in the queue. Now cancelled. + - Added some printfs to aim_info to get more informative crahes + - Fixed a bug in aim_rxqueue::purge + + - Sun Jan 2 10:31:19 UTC 2000 + - Cleanups in aim_info.c + - Can compile with -Ddebug=100 again + - Implemented chat: Joining/Leaving, info parsing, IM parsing/sending + - Implemented some chatnav: rights req/parsing, room creation + + - Thu Dec 30 10:08:42 UTC 1999 + - Fixed bug in aim_im.c when (encoding == NULL) || (lang == NULL) + - Added detection of voice chat requests + - Added AIM_CLASS_* defines, including new Away flag + - Added awaymsg parameter to bos_setprofile. + - If awaymsg is nonnull, you will be advertised as being away (your + class will be ORed with AIM_CLASS_AWAY), otherwise you'll show + up normal. + + - Wed Dec 29 10:06:35 UTC 1999 + - Fixed small bug in IM parser + - Added stubs for the capability TLVs in userinfo. + + - Wed Dec 29 09:14:45 UTC 1999 + - Added a capability block to aim_bos_setprofile. Can now get chat + invites again. + - Extended ICBM parser to support channel 2 messages (chat invites) + - A channel parameter has been prepended to the varargs -- REQUIRES + CLIENT CHANGES. + - Extended faimtest to support chat invites. + - Changed faimtest to get sn/password from environment + + - Wed Dec 29 04:17:03 UTC 1999 + - Added -g to CFLAGS + - Added aim_sendconnack() to aim_login.c (needed for newer login) + - Added code for the new SNAC-based login/auth procedure. (see SNACLOGIN + in faim/faimconfig.h for why its not enabled) + - Reimplemented aim_authparse(), aim_handleredirect() using TLVlists + - The old auth_failed callback is now integrated into the + success one. If there was an error, logininfo->errorcode is nonzero + - Fiddled with version information. Added aim_setversions() + - Added table of SNAC names for showing unknown snacs (jbm) + - Added a middle handler for MOTD + - Added new authorization SNACs to faim/aim_cbtypes.h + - Sun Dec 26 22:59:10 UTC 1999 - Renamed login_phase1_struct to aim_login_struct - Changed cookie and sn to be static arrays in aim_login_struct