20040906 accept_conns() trivial correctness fix: EINTR return from accept should force continue rather than break in handling loop. fail_on_fdne() is now file_exists() with a slightly different API. 20040818 Use inet_aton rather than custom function; daemon.[ch] removed. 20040817 ifchd no longer logs a "FATAL - select returned an error!" when it is -KILL'ed. 20040626 pending_exit is now static volatile sig_atomic_t rather than static volatile int for pedantic correctness issues. 20040614 Added --interface (-i) option that allows one to restrict the interfaces that ifchd clients are allowed to modify. I reccomend that this flag be used to further mitigate the possible effects of a compromised client. By default, all interfaces may be modified by clients. Minor cleanups. Clear corresponding namesvrs and domains on socket disconnection. 20040613 Factor out Linux-specific code into linux.c. Nameservers and search domains now tracked per-connection to prevent races where a client could force a writeout of data provided by another client. Interface name now cleared on connection close. Make all headers idempotent. Minor improvements to error messages. 20040612 Removed iffd[] array; this change makes the state machine action functions (perform_*) depend on less external state. HOSTNAME command now supported; it is not enabled by default. If you wish for remote daemons to be able to change the hostname of the local machine, use the --hostname (-o) option. 20040610 Added MTU support. 20040609 Robustify so that suicide() isn't called at every possible failure. Harmless failures will now simply print an error to the log. Risky or severe errors still suicide(). 20040608 Added support for resolv.conf, namely "nameserver" and "search" entries. Make strlist more robust and paranoid. 20040607 Improved accept() code to be much more robust; it can now properly error recover. I hope this will fix the elusive random-exit problem that plagues machines running the 2.6 kernel. Refactored dispatch_work() to be cleaner.