Version 0.1: original version. Version 0.2: fixed bug when several reads are necessary on one end or the other before a write flushes them. Fixed bug which threw away data not yet sent to the other side on close, when running under Linux. Fixed associated bugs that probably affected other operating systems as well. Fixed bug causing long, perhaps indefinite pauses when a possible connection to a server socket went away before the accept() call, resulting in a blocking call. Version 0.3: fixed additional bugs relating to the code previously used only by non-Linux OSes. This should fix problems such as connections not going away when they should or connections being mysteriously closed. Most of that code is now used by Linux also, so it is likely that rinetd is much closer to bug-free on non-Linux platforms. Of course, I don't actually have any to play with it on. Version 0.4: added support for kill -1 (SIGHUP) and specification of service names instead of port numbers. Removed calls to realloc(), replacing them with code that should fail gracefully without crashing the program or breaking existing connections when another application is hogging memory.