Welcome to Community Server Sign in | Join

More Abstract Than Thou

Because nobody needs to know MATT

<November 2009>
SuMoTuWeThFrSa
25262728293031
1234567
891011121314
15161718192021
22232425262728
293012345

Post Categories

Navigation

Subscriptions

And another one bites the dust
TOC is dead.

As of 5:15AM (Eastern) on Thursday, 8/18/05, support for the TOC protocol has been terminated. TOC was released in 1997 under the GPL, presumably to stave off concerns over AOL abusing its dominant position. It also has served to encourage third-party developers to stay away from their closed protocol, OSCAR, which the official AIM client uses. On Thursday morning, users of Centericq, naim, and Miranda all found themselves unable to login to AIM.

This, of course, also disabled DoorManBot.

The timing couldn't have been better: in the middle of packing my desktop for two weeks while I move in at MIT.

My choices:
a) Wait and hope that this is just a bug which AOL will fix, bringing TOC support back. Very unlikely, but still an option.
b) Switch to the well-documented-and-implemented OSCAR protocol. Possibly even create an external bridge, involving little modification to the DoorManBot code base.
c) Look for TOC2 documentation and recode using that. TOC2 would presumably be very similar to TOC, involving minor changes.

While I may do something with option b in the future, I went with c. Thanks to George at TerraIM I was in possession of some lovely documentation.

The first part was easy enough, modifying the login procedure with one extra command and then changing a few items from toc_ to toc2_. Doing this had my test SN "Cronusbot" online in no time. After some tweaks to deal with the extra parameter in im_in2, the server was ready to go.

The worker client, on the other hand, took some more doing. TOC2 automatically saves buddy lists AND has the server reload them on signon. The bots operate on a dynamic buddy list, so the existing list must be removed. However, TOC2 works much like *nix "rm" without recursive or "*" options, requiring each individual ScreenName to be removed. Also, DoorManBot has for the last year been sending buddy lists in full toc_set_config format, keeping track of and sending the entire list in response to any change. TOC2 allows only adding and removing sets of SNs, independent of the buddy list, which took some serious modifications outside of the protocol module to implement.

As of this moment, I have things running again, less than three days after the original outage, but something tells me there will be more trouble in the future.

posted Sunday, August 21, 2005 2:52 AM by austein with 0 Comments