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@iinet.net.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

