0.9.9 (pending)
+ Various other size optimizations (Vladimir)
+ Change strerror(errno) to %m (Vladimir N. Oleynik <dzo@simtreas.ru>)
+ Fixed a little endian problem in mton (Bastian Blank <waldi@debian.org>)
+ Fixed a arpping alignment problem (Rui He <rhe@3eti.com>)
+ Added sanity check for max_leases (udhcp bug #1285) (me)
+ Finally got rid of the trailing space in enviromental vars (me)
+ added an new enviromental variable: $mask. It contains the number
  of subnet bits for tools like ip route that require it.
  (Bastian Blank <waldi@debian.org>, me)

0.9.8 (021031)
+ split up README files (me)
+ use /dev/urandom to seed xid's (instead of time(0)) (me)
+ fixed renew behavior (me)
+ udhcp now fits nicely into busybox
  (Glenn McGrath <bug1@optushome.com.au> as well as myself)
+ updated client manpage (me)
+ both client and server now use sockets for signal handling,
  hopefully, this will be the last needed change in signal
  handling, I'm fairly certain all the possible races are now
  closed. (me)
+ The server now restarts the auto_time timer when it receives
  a SIGUSR1 (write out config file). (me)
+ Improve signal handling (David Poole)
+ Fix to config file parsing (Matt Kraai)
+ Fix load lease logic (me)
+ Fix clear_lease logic (me)
+ -h is now an alias for -H (udhcp bug #1253)
+ Shorter timeout on not receiving offers (me)
+ Improved signal behavior by client (me)
+ Would never assign end address (Keith Smith <keith@ksmith.com>)
+ Was improperly reporting yiaddr as siaddr (ben-udhcp@bdlow.net)
  udhcp bug#1256
+ Fixed reading of client id (David Poole <davep@portsmith.com>)
+ change sys_errlist[] to strerror() as it aparently doesn't exist
  (Erik Andersen <andersee@codepoet.org>)
+ fixed get_raw_packet so it returns -2 on non fatal errors
  (Ted Lemon <Ted.Lemon@nominum.com>)
+ Improved (hopefully) NAKing behavior (me)
+ Added -b option (Jouni Malinen)
+ Compute checksums correctly on big endian hosts
  (Jouni Malinen <jkmaline@cc.hut.fi>)

0.9.7 (020526)
+ Use add_lease in read_leases, sanitizes leases more, and clears out exprired
  ones if there is no more room (me)
+ Moved udhcpd.leases to /var/lib/misc/udhcpd.leases (Debian bug #147747)
+ Change (obsolete) AF_INET in arping.c to PF_PACKET (Debian bug #127049)
+ Added script hook for DHCPNAK (nak), as well as providing the message option
  (me)
+ Generate the paramaters request list by seeing what options in options.c are
  ored with OPTION_REQ in options.c
+ Fix dhcp renew forgetfullness on client (bug #1230)
+ Fix dhcp release bug on client (bug #1231)
+ Set option request list for DHCP renew (bug #1233)
+ Set BOOTREQUEST/REPLY properly
+ Change client-identifier field to popularly expected behavior (me)
+ Only reopen port on errors (me)
+ Change fork/close/setsid structures to daemon() (me)
+ Allow user to specify udhcpd config file at run time (Steven, me)
+ Write pidfile after changing it (Steven CTR Carr <Steven.CTR.Carr@tc.faa.gov>)
+ Added env var docs to udhcpc man page (Matt)
+ Standardized lowercase udhcp in documentation (me)
+ Accept packets without a UDP checksum (me)
+ Accept packets with extra garbage (me)
+ Better error handling in files.c (me)
+ Combined read_interface function to reduce COMBINED_BINARY size (me)
+ Drop calc_length(), some servers choke on smaller packets (me)
+ Try to clean some fat out (me)

0.9.6 (011001)
+ Added bootp paramaters to server (me)
+ Added bootp paramaters to client (me)
+ Added vendor id to client (me)
+ Better pidfile handling in client and server (me)
+ Added man pages (Matt Kraai <kraai@alumni.carnegiemellon.edu>)

0.9.5 (010914)
+ Fixed $HOME and $PATH env passing (me)
+ Fixed client to only listen for raw packets on correct interface (me)
+ added --quit,-q option to quit after a lease is obtained (me)
+ Fixed 100% CPU utilization by client when interface is down (me)

0.9.4 (010827)
+ Force broadcast to broken clients that request unicast (ie, MSFT 98)
+ Make install rules (Adam J. Richter <adam@yggdrasil.com>)
+ One scripts, instead of many (Adam)
+ Removed script paramater info files (env vars only) (Adam)
+ Controlling of forking behavior in client (Adam)
+ General script.c/dhcpc.c cleanups (Adam)

0.9.3 (010820)
+ Increased debugging verbosity (me)
+ Cut trailing whitespace when reading config file (me)
+ added hostname option to client (me)
+ fixed a strncpy bug in script.c (me)
+ fixed a leaky socket in dhcpc.c (me)
+ fixed a leaky socket in dhcpd.c (me)

0.9.2 (010810)
+ Added raw sockets to client (me)
+ alignment fixes (Mark Huang)
+ compiler warning fixes (Mark Huang)
+ client now sends parameter list (Mark Huang/me)
+ added ipttl option
+ Does now not request broadcast packets

0.9.1 (010806)
+ Added udhcpc client
+ reorganized functions/files
+ listening socket now only binds to one interface

0.9.0 (010720) Major rewrite, current changes, goals:
+ should not segfault on bogus packets.
+ Options can be read from sname and file fields.
+ supports all DHCP messages (release, decline, inform).
+ IP block is now specified by a range of IP's.
+ Leases file now contains lease time (relative, or absolute).
+ Just about any DHCP option is now supported.
+ DNS entries are no longer read from resolv.conf
+ Lease file can be written periodically when the process receives a SIGUSR1
+ arpping should be supported on all arches.
+ support for DHCP relays.
+ DHCP messages can be unicast if the client requests it.
+ many, many, many other things.

0.8.29 (000323)
+ stable(?) release


0.8.28 (000323)
+ removed alarm as it was causing server to go down
+ removed debugging
+ break down dhcpd.c into manageable files


0.8.27 (000221)
+ OFFER also sends gateway/subnet (for picky dhcp clients)
+ multiple DNS now handled from resolv.conf if available
+ multiple WINS (from dhcpd.conf)

0.8.25 (000120)
+ now compiles *and* runs on a generic linux system
	tested with a windows 98 client and the sample config
	files in the samples directory.

0.8.24 (000117)
+ makeiplist tool has basic functionality in place
+ new sample config files
+ route add -host 255.255.255.255 dev eth0 added for generic linux

0.8.23 (000117)
+ NETtel specific fix for ignoring dhcp requests on 2nd interface

0.8.22 (000113)
+ minor changes to compile under a generic linux system
+ minor config file location changes for a generic linux system
+ makeiplist fixes.. still incomplete.. but etting closer

0.8.21 (000113)
+ now sends the correct server ip instead of hardcoded value
+ minor debugging fixes for critical messages

0.8.20 (000106)
+ cut out dhcp server checking.. this was causing dialout ppp
	sessions with idle time set to never time out.
+ also removed the 10 second pause before launching.. as this
	was originally to stop it replying to a dhcp client
	on a NETtel which was really a bad way to do it in the
	first place :-)

0.8.19 (000104)
+ fixes for route add -host on a machine that needs to run both
	a DHCP client and server (dual eth box)

0.8.18 (991220)

+ Race conditions fixed by disabling alarm whilst the server is busy
+ Fixed continous clearing of the offered array so that it is only cleared
  when it is dirty - (could change the position of when dirty is set)

0.8.17 (991212)

- has problems clearing out the offered array

0.8.16 (991203)
+ Non blocking error is changes to informational as it is not really
  an error

0.8.15 (991129)
+ Servs the dns field 3 times (Nettel only) so that windows servers
  dont time out whilst nettel is booting

0.8.14 (991126)
+ added owner check for the offered array so clean out time may be
  increased
+ added new func to print out chadder/MAC

0.8.13 (991125)
+ added win95 support (w95 changed xid halfway through conversation)
+ had to change the offered array to use hardware addresses instead of xid
+ fixed re offered bug
+ added more debugging

0.8.12 (991111)
+ debugging was real bad.. cleaned up a bit.. needs overhaul


0.8.11 (991110)
+ fixed up offeredAddr array to actually be used now!! offeredAddr is
	used to see if another simultaneous connecting client was offered
	an address that we are about to offer another client (multiple
	client bug)
+ removed re_offered variable as it breaks multiple client support
+ added lease time to ACK -- doesn't work if in OFFER
+ decreased internal array clear delay to 60 seconds
+ minor findAddr bug (returning -1 instead of 0)
+ if clients xid already in offeredAddr offer the same addr and don't add a
	new addr to offered (caused by a client issuing multiple DISCOVERs)

0.8.10 (991105)
+ \n bug in arpping
+ minor debugging changes (removed printfs etc)
+ started browseiplist (not finished)

0.8.9 (19991105)
+ fixed options array size bug (options were cut off)

0.8.8 (19991105)
+ ignores requests from dhcpcd on the same machine

0.8.7 (19991104)
+ don't die if we can't bind to search for existing DHCP server
+ slightly more verbose syslogging

0.8.6 (19991103)
+ added makeiplist (not finished -- core dumps)
+ minor debug changes

0.8.5 (19991029)
+ exits if another DHCP server is already on the network
+ added Linux Makefile

0.8.4 (19991026)
+ minor bug fix in findaddr preventing an addr being found

0.8.3 (19991025)
+ fixed up debugging
+ minor hwaddr issues

0.8.2 (19991022)
+ free leases (new arpping code from dhcpcd)
+ fixed bug where crashes if no leases/iplist file
+ syslogging and debugging switch
+ serve DNS from resolv.conf
+ fixed bug where new lease added if same mac offered
+ now checks the ip is free b4 offering
+ now supports wins server

