- 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
- 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)
mid [Mon, 21 Aug 2000 22:11:49 +0000 (22:11 +0000)]
- 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)
- 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 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.)
mid [Fri, 30 Jun 2000 00:13:23 +0000 (00:13 +0000)]
- 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.
mid [Mon, 26 Jun 2000 08:09:09 +0000 (08:09 +0000)]
- 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.
mid [Sat, 24 Jun 2000 02:22:10 +0000 (02:22 +0000)]
- 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.
mid [Sat, 24 Jun 2000 02:01:31 +0000 (02:01 +0000)]
- 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
mid [Fri, 16 Jun 2000 20:47:56 +0000 (20:47 +0000)]
- 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
mid [Tue, 6 Jun 2000 02:52:55 +0000 (02:52 +0000)]
- 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)
mid [Sat, 3 Jun 2000 00:10:45 +0000 (00:10 +0000)]
- 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
mid [Fri, 2 Jun 2000 16:01:26 +0000 (16:01 +0000)]
- 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!)
mid [Wed, 31 May 2000 01:21:44 +0000 (01:21 +0000)]
- 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()
mid [Tue, 30 May 2000 22:37:20 +0000 (22:37 +0000)]
- 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'.
mid [Mon, 29 May 2000 12:37:45 +0000 (12:37 +0000)]
- 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.)
mid [Sun, 21 May 2000 23:14:30 +0000 (23:14 +0000)]
- 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.
mid [Thu, 23 Mar 2000 22:42:10 +0000 (22:42 +0000)]
- 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()
mid [Sun, 19 Mar 2000 08:55:50 +0000 (08:55 +0000)]
- 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.