mid [Wed, 3 Oct 2001 18:44:59 +0000 (18:44 +0000)]
- Wed Oct 3 11:07:22 PDT 2001
- Fix awful bug in ft listenestablish.
- struct aim_userinfo_s becomes aim_userinfo_t.
- I haven't decided what to do with this. I like it in its current
form to an extent, but it is also not flexible enough. But it would
become too complex and cumbersome if I were to do it more flexibly.
- Also added a few accessor functions that should be used instead of
directly accessing the struct, particularly for the capabilities.
- 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 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.
- 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 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()
- 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.
mid [Thu, 30 Aug 2001 00:08:58 +0000 (00:08 +0000)]
- 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.
mid [Sun, 26 Aug 2001 02:56:58 +0000 (02:56 +0000)]
- 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.
mid [Sun, 26 Aug 2001 02:29:00 +0000 (02:29 +0000)]
- 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)
mid [Sun, 26 Aug 2001 01:52:28 +0000 (01:52 +0000)]
- 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.
mid [Fri, 3 Aug 2001 00:33:50 +0000 (00:33 +0000)]
- 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.
mid [Sat, 16 Jun 2001 05:14:36 +0000 (05:14 +0000)]
- 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.
mid [Fri, 15 Jun 2001 00:46:44 +0000 (00:46 +0000)]
- 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.
mid [Mon, 4 Jun 2001 19:54:14 +0000 (19:54 +0000)]
- 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.
mid [Sat, 26 May 2001 08:58:32 +0000 (08:58 +0000)]
- 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.
mid [Thu, 24 May 2001 01:14:12 +0000 (01:14 +0000)]
- 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.
mid [Thu, 3 May 2001 22:57:17 +0000 (22:57 +0000)]
- 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
mid [Thu, 29 Mar 2001 05:28:00 +0000 (05:28 +0000)]
- 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?)
mid [Thu, 29 Mar 2001 01:02:40 +0000 (01:02 +0000)]
- 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.
mid [Sat, 24 Mar 2001 03:38:58 +0000 (03:38 +0000)]
- 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!)
mid [Fri, 23 Mar 2001 05:52:31 +0000 (05:52 +0000)]
- 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...
mid [Fri, 23 Mar 2001 01:52:38 +0000 (01:52 +0000)]
- 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.
mid [Mon, 5 Mar 2001 01:28:44 +0000 (01:28 +0000)]
- 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)
mid [Sun, 11 Feb 2001 01:16:22 +0000 (01:16 +0000)]
- 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')
mid [Thu, 8 Feb 2001 05:57:32 +0000 (05:57 +0000)]
- 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.
mid [Sat, 16 Dec 2000 01:41:03 +0000 (01:41 +0000)]
- 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().
mid [Fri, 15 Dec 2000 23:38:51 +0000 (23:38 +0000)]
- 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).
mid [Fri, 15 Dec 2000 10:13:21 +0000 (10:13 +0000)]
- 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.]
mid [Thu, 14 Dec 2000 03:44:59 +0000 (03:44 +0000)]
- 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)
mid [Wed, 13 Dec 2000 00:42:28 +0000 (00:42 +0000)]
- 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
mid [Tue, 12 Dec 2000 23:15:24 +0000 (23:15 +0000)]
- 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.
mid [Fri, 1 Dec 2000 22:32:25 +0000 (22:32 +0000)]
- 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.
mid [Thu, 30 Nov 2000 01:37:20 +0000 (01:37 +0000)]
- 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
mid [Fri, 10 Nov 2000 08:35:06 +0000 (08:35 +0000)]
- 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.
mid [Wed, 8 Nov 2000 13:19:10 +0000 (13:19 +0000)]
- 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***)
mid [Wed, 8 Nov 2000 10:29:02 +0000 (10:29 +0000)]
- 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.