0.9.10
  Size optimization (over 3k), more busybox integration
  (Vladimir Oleynik <dzo@simtreas.ru>

0.9.9 (pending)
+ 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 <andersen@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

