- freedt 0.22 Tidy up the build system in several minor ways. Update my email address. Silenced some clang false positives. Fixed a couple of actual (but harmless) resource leaks found by cppcheck. Enable iolib's testcases. - freedt 0.21 Fix bugs found by Ulf Härnhammar's audit: - off-by-one error in envdir - check multiplication hasn't overflowed in iolib Use id -g instead of C code in mkservice. - freedt 0.20 Fix format with more than one va argument (for instance, in svstat). - freedt 0.19 Use va_list rather than va_list * as function argument, to deal with architectures like x86-64 where va_list is an array type (Larry Doolittle). - freedt 0.18 Use a config.h file. Fix a stupid typo in supervise: F_SETFL for O_NONBLOCK. - freedt 0.17 Implement fdt_unsetenv() (since Solaris doesn't have unsetenv); reimplement fdt_setenv() to work on a copy of the environment (since setenv's behaviour isn't defined if you modify environ yourself). Implement lock_fd() (since Solaris doesn't have flock). Include some extra headers for Solaris. Make autoconf detect the available RLIMIT_* declarations. Make autoconf detect O_FSYNC for FreeBSD (instead of O_SYNC) (Tim Bishop). Add RLIMIT_SBSIZE and RLIMIT_VMEM limits in softlimit (both on FreeBSD, VMEM on Solaris). - freedt 0.16 Remove almost all the buffered IO stuff from iolib. Fix ratelimit to not hang if it can't write all its buffered data immediately. Rename bsetsize() to bsetlength(), add a new internal bsetsize(), and thus remove a needless alloc-and-copy from readb. Make dumblog use O_SYNC instead of fsync(). Make dumblog retry failing write()/close() calls, and be more careful about not losing data on error. Make envdir have the correct file-trimming behaviour. (It's not obvious from djb's documentation what you're meant to do with incomplete lines, but it seems more useful to treat a file that doesn't contain a \n as just containing one line.) Make envdir correctly replace \0 with \n in variable values. Simplify anonidentd code considerably. Improve anonidentd logging. Remove extraneous space from anonidentd response. - freedt 0.15 Fix error handling in anonidentd. Make svscan invoke log services as "supervise x/log". Rework svscan logic to chdir() less often. Make iformat/bformat use a format string. Make bformat buffer the formatted output before writing it. - freedt 0.14 Fix handling of non-directories in the service dir (JN) and a few error-handling bugs in svscan. - freedt 0.13 Clear the signal mask in supervise before starting the child process. - freedt 0.12 Remove arbitrary limit on svc's command buffer (JN). - freedt 0.11 Made svc send commands to supervise in the order they were given (JN). getopt should return int, not char. Added version and help options to all programs. Added -s to setuidgid to make it pick up supplementary groups too (suggested by MP). - freedt 0.10 Fixed typo in waitpid check in supervise (MP). - freedt 0.9 Mask SIGCHLD except around select() in supervise (MP). Add some more helper functions to freedt.c. Update FD flags correctly (MP). Use FD_CLOEXEC rather than explicit closes, and fix FD leak in supervise (MP). Save errno in signal handlers (MP). - freedt 0.8 Fix argc check in supervise (reported by Jon Nelson). Update configure.in for new version of automake. Made svscan check for the existance of log/, rather than the sticky bit being set (Jon Nelson). Use a self-pipe for signal handling in supervise (Michael Pomraning). Make kill_child behave more sensibly on error in supervise (Michael Pomraning). Remove superfluous check for root in setuidgid (Michael Pomraning). - freedt 0.7 Made supervise and svscan close all their file descriptors before execing children. Made supervise not block if the supervise lock for a directory is already taken. Made svscan always sleep for 5 seconds, even if a child dies in the meantime. - freedt 0.6 Made svscan wait for multiple dead children on SIGCHLD (otherwise if multiple supervises died at once some would be zombified). Made supervise open control fifo in blocking mode (brown paper bag bug) and simplified child death logic. - freedt 0.5 Fixed ratelimit/recordio bug where select didn't stop reading upon the input being closed. Added freedt.o, and changed PROGNAME mechanism to match. Added _IOLIB_H guards to iolib.h. Added chroot support to anonidentd. Moved servetcp out into a seperate package (onenetd). Considerably simplified supervise logic. Removed socket-specific code from iolib. autoconfiscated. - freedt 0.4 (30th November 2001) Added ratelimit and recordio. - freedt 0.3 (29th November 2001) Made svc deal correctly with multiple arguments. Tidied up freedt.h a bit. Added die2(); made error messages include the service name where possible. Made supervise update the status file upon -u and -o (previously svstat would show the service as still being down). Made svstat display the downtime and normal status of down services. - freedt 0.2 (23rd September 2001) Ported to iolib instead of libc. Added dumblog. Added more djb-like programs to README. Added servetcp. Added anonidentd. - freedt 0.1 (17th June 2001) Initial version.