diff options
author | murray <murray@FreeBSD.org> | 2002-02-19 11:04:34 +0000 |
---|---|---|
committer | murray <murray@FreeBSD.org> | 2002-02-19 11:04:34 +0000 |
commit | 57b30d23e7c11fa1a8c8c23f27de40971872952f (patch) | |
tree | 229464d9b3244ab78e2784c9a0a1f78de317089a /contrib/isc-dhcp/RELNOTES | |
parent | 7acb11388cf5d680b16902b8ed6f46c46dc4d47b (diff) | |
download | FreeBSD-src-57b30d23e7c11fa1a8c8c23f27de40971872952f.zip FreeBSD-src-57b30d23e7c11fa1a8c8c23f27de40971872952f.tar.gz |
Import ISC DHCP 3.0.1 RC6 client.
Diffstat (limited to 'contrib/isc-dhcp/RELNOTES')
-rw-r--r-- | contrib/isc-dhcp/RELNOTES | 1213 |
1 files changed, 725 insertions, 488 deletions
diff --git a/contrib/isc-dhcp/RELNOTES b/contrib/isc-dhcp/RELNOTES index de029af..df58adc 100644 --- a/contrib/isc-dhcp/RELNOTES +++ b/contrib/isc-dhcp/RELNOTES @@ -1,766 +1,1003 @@ - Internet Software Consortium - Dynamic Host Configuration Protocol Distribution - Version 2 Patchlevel 5 - September 6, 2000 + Internet Software Consortium DHCP Distribution + Version 3.0.1 + Release Candidate 6 + January 17, 2002 Release Notes -Version 2 of the ISC DHCP Distribution includes the ISC DHCP server, -DHCP Client and DHCP/BOOTP Relay Agent. - -This version has been in a near feature freeze since January of 1998, -was in Beta test from that time to June of 1999, and has now been -released in its final form. It has a number of important features, -and is the release that we would expect most sites to run. + NEW FEATURES + +Version 3 of the ISC DHCP Distribution includes the following features +that are new since version 2.0: + + - DHCP Failover Protocol support + - OMAPI, an API for accessing and modifying the DHCP server and + client state. + - Conditional behaviour + - Storing arbitrary information on leases + - Address pools with access control + - Client classing + - Address allocation restriction by class + - Relay agent information option support + - Dynamic DNS updates + - Many bug fixes, performance enhancements, and minor new DHCP + protocol features. + +This is a release candidate for a minor bug fix release to follow ISC +DHCP 3.0. The main bug fixed here is a bug in the subclass allocation +code that could result in a memory smash. Any users of the ISC DHCP server +who are using subclasses should seriously consider upgrading to 3.0.1 +either now or when the final 3.0.1 release comes out. + +If you are running 3.0 beta 1 and are doing dynamic DNS updates, the +lease file is no longer forward-compatible to 3.0 final. A script +has been provided to convert 3.0b1 lease files. This is in +contrib/3.0b1-lease-convert. For information on how to install, configure and run this software, as well as how to find documentation and report bugs, please consult the README file. - CHANGELOG +The Dynamic DNS Update support is a descendent of an implementation +done by Lans Carstensen and Brian Dols at Rose-Hulman Institute of +Technology, Jim Watt at Applied Biosystems, Irina Goble at Integrated +Measurement Systems, Igor Sharfmesser at Kazakh Telecom, and Brian +Murrell at BC Tel Advanced Communications. I'd like to express my +thanks to all of these good people here, both for working on the code +and for prodding me into improving it. -This log describes the changes that have been made in version 2.0 -since June of 1997. + Changes since 3.0.1rc5 - CHANGES FROM VERSION 2.0 PATCHLEVEL 4 +- Include some new documentation and changes provided by Karl Auer. -- Fix a prototype mismatch that causes compiles to fail on some architectures. +- Add a workaround for some Lexmark printers that send a double-NUL- + terminated host-name option, which would break DNS updates. -- Two minor cosmetic changes to manual pages. +- Fix an off-by-one error in the MAC-address checking code for + DHCPRELEASE that was added in 3.0.1rc5. - CHANGES FROM VERSION 2.0 PATCHLEVEL 3 +- Fix a bug where client-specific information was not being discarded + from the lease when it expired or was released, resulting in + problems if the lease was reallocated to a different client. -- Fix a bug introduced in the client in the previous patchlevel where the - broadcast would be set to the subnet number instead of the broadcast - address. +- If more than one allocation pool is specified that has the same set + of constraints as another allocation pool on the same shared + network, merge the two pools. - CHANGES FROM VERSION 2.0 PATCHLEVEL 2 +- Don't print an error in fallback_discard, since this just causes + confusion and does not appear to be helping to encourage anyone to + fix this bug. -- Rather than calling a client environment setup script, set the - environment up directly, so as to avoid any possible exploit making - use of clever shell metacharacter hacks. This is a security fix - that applies to the DHCP client *only*. + Changes since 3.0.1rc4 - CHANGES FROM VERSION 2.0 PATCHLEVEL 1 +- Fix a bug that would cause the DHCP server to spin if asked to parse + a certain kind of incorrect statement. -- Fix a case where an unitialized pointer could result from an exceptional - case in DHCPRELEASE and cause a core dump. +- Fix a related bug that would prevent an error from being reported in + the same case. - CHANGES FROM VERSION 2.0 +- Additional documentation. -- Clean up DHCPRELEASE support. +- Make sure that the hardware address matches the lease when + processing a DHCPRELEASE message. -- Don't use the broadcast flag when doing BOOTP unless we need to. + Changes since 3.0.1rc3 -- Clean up the fallback mess. +- A minor bug fix in the arguments to a logging function call. +- Documentation update for dhcpd.conf. -- Quote all shell special characters in the client script. + Changes since 3.0.1rc2 -- Fix ethernet header alignment on arm32. +- Allow the primary to send a POOLREQ message. This isn't what the current + failover draft says to do, so we may have to back it out if I can't get the + authors to relent, but the scheme for balancing that's specified in the + current draft seems needlessly hairy, so I'm floating a trial balloon. + The rc1 code did not implement the method described in the draft either. -- Clarify the "no subnet declaration" message. + Changes since 3.0.1rc1 -- Correctly store the tftp server name in the lease file and the - client script file. +- Treat NXDOMAIN and NXRRSET as success when we are trying to delete a + domain or RRSET. This allows the DHCP server to forget about a name + it added to the DNS once it's been removed, even if the DHCP server + wasn't the one that removed it. -- Avoid a potential spin loop in client when script file creation - fails for reasons other than the presence of an existing file of the - same name. +- Install defaults for failover maximum outstanding updates and maximum + silent time. This prevents problems that might occur if these values + were not configured. -- Add support for Linux kernel versions greater than 2.2. +- Don't do DDNS deletes if ddns-update-style is none. -- Fix a problem in raw.c on Irix. Thanks to Don Badrak for the - patch. +- Return relay agent information options in DHCPNAK. This prevents DHCPNAK + messages from being dropped when the relay agent information option contains + routing information. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 29 +- Fix a problem where coming up in recover wouldn't result in an update + request being sent. -- Define BYTE_ORDER in includes/cf/hpux.h so that ip.h will compile - correctly on HP-UX. +- Add some more chatty messages when we start a recovery update and when it's + done. -- Fix a long-standing but minor bug in the way the program name for - syslog was derived. +- Fix a possible problem where some state might have been left around + after the peer lost contact and regained contact about how many updates + were pending. -- Fix a long-standing bug that prevented the DHCP server from broadcasting - responses to BOOTP clients that requested a broadcast response. +- Don't nix a lease update because of a lease conflict. This test has + never (as far as I know) prevented a mistake, and it appears to cause + problems with failover. -- In dhcprequest(), check to make sure that there's a lease before trying - to acknowledge it to the client. This fixes a potential core dump that - a few people observed. +- Add support in rc history code for keeping a selective history, rather + than a history of all references and dereferences. This code is only used + when extensive additional debugging is enabled. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 28 + Changes since 3.0 -- Fix some pastos I introduced when merging Andrew Chittenden's token - ring support. +- Make allocators for hash tables. As a side effect, this fixes a memory + smash in the subclass allocation code. -- Apply a patch to the token ring support from Andrew Chittenden. +- Fix a small bug in omshell where if you try to close an object when + no object is open, it dumps core. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 27 +- Fix an obscure coredump that could occur on shutdown. -- Add dependencies to makefiles. +- Fix a bug in the recording of host declaration rubouts in the lease file. -- Don't use ping -w 1 in freebsd client script. +- Fix two potential spins in the host deletion code. -- Token ring support for LPF, contributed by Andrew Chittenden. +- Fix a core dump that would happen if an application tried to update + a host object attribute with a null value. -- Fix a subtle bug that would cause the server to respond incorrectly - in some cases when the client sent duplicate DHCPREQUEST packets. + Changes since 3.0 Release Candidate 12 -- Fix option pretty printing for 'X' format. +- Fix a memory leak in the evaluation code. -- Add some special cases to deal with DHCPREQUEST packets from RFC1541 - clients. +- Fix an obscure core dump. -- Fix an obscure bug in nested subnet mask handling. +- Print a couple of new warnings when parsing the configuration file + when crucial information is left out. -- Fix a bug in abandoned lease reclamation. +- Log "no free leases" as an error. -- Allow maximum message size to be set in configuration file. +- Documentation updates. -- Allow parameter request list to be supplied in configuration file. + Changes since 3.0 Release Candidate 11 - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 26 +- Always return a subnet selection option if one is sent. -- Fix UDP/IP checksum code +- Fix a warning that was being printed because an automatic data + structure wasn't zeroed. -- Fix UDP payload length computation to prevent logging of spurious - errors. +- Fix some failover state transitions that were being handled + incorrectly. -- Support compilation on MacOS X +- When supersede_lease is called on a lease whose end time has already + expired, but for which a state transition has not yet been done, do + a state transition. This fixes the case where if the secondary + allocated a lease to a client and the lease "expired" while the + secondary was in partner-down, no expiry event would actually + happen, so the lease would remain active until the primary was + restarted. -- Add support for some options that were added in RFC2132. + Changes since 3.0 Release Candidate 10 - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 25 +- Fix a bug that was preventing released leases from changing state + in failover-enabled pools. -- Use the udp header's length rather than computing the length based - on the number of bytes received, because some broken relay agents - send packets with ip lengths that are longer than then sum of the ip - header size and the udp length. +- Fix a core dump in the client identifier finder code (for host + declarations). -- Do path keyword substitution on unformatted manual pages before - installing them. +- Finish fixing a bug where bogus data would sometimes get logged to + the dhclient.leases file because it was opened as descriptor 2. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 24 +- Fix the linux dhclient-script according to suggestions made by + several people on the dhcp-client mailing list. -- D'oh! Fix a really stupid mistake in hash.c. +- Log successful DNS updates at LOG_INFO, not LOG_ERROR. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 23 +- Print an error message and refuse to run if a failover peer is + defined but not referenced by any pools. -- Support an always-reply-rfc1048 flag, which says to reply with an - RFC1048-style vendor extensions buffer even if the client didn't - send an RFC1048-style magic number. +- Correct a confusing error message in failover. -- Fix a null pointer dereference. + Changes since 3.0 Release Candidate 9 -- Use netmask from subnet if no netmask option specified. +- Fix a bug in lease allocation for Dynamic BOOTP clients. -- IRIX support (thanks to Don Badrak). + Changes since 3.0 Release Candidate 8 Patchlevel 2 -- Install unformatted manual pages on Linux. +- Fix a bug that prevented update-static-leases from working. -- Add note in README about zcat vs. gzcat on BSD/os. +- Document failover-state OMAPI object. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 22 +- Fix a compilation error on SunOS 4. -- Test for lease before dereferencing it in dhcprequest. + Changes since 3.0 Release Candidate 8 Patchlevel 1 -- Free the client parameter request list in dhcpnak if there is one. +- Fix a parsing bug that broke dns updates (both interim and ad-hoc). + This was introduced in rc8pl1 as an unintended result of the memory + leakage fixes that were in pl1. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 21 +- Fix a long-standing bug where the server would record that an update + had been done for a client with no name, even though no update had + been done, and then when the client's lease expired the deletion of + that nonexistant record would time out because the name was the null + string. -- Fix a pasto in options.c that will cause a core dump whenever a - client sends in a request without a parameter request list. +- Clean up the omshell, dhcpctl and omapi man pages a bit. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 20 + Changes since 3.0 Release Candidate 8 -- Actually do the client fix mentioned below - Patchlevel 20 only contained - half of the fix. +- Fix a bug that could cause the DHCP server to spin if + one-lease-per-client was enabled. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 19 +- Fix a bug that was causing core dumps on BSD/os in the presence of + malformed packets. -- Removed arp table clearing code from solaris client script. +- In partner-down state, don't restrict lease lengths to MCLT. -- Document Linux "protocol not configured" error more thoroughly. +- On the failover secondary, record the MCLT received from the primary + so that if we come up without a connection to the primary we don't + wind up giving out zero-length leases. -- Clean up some unused variables. +- Fix some compilation problems on BSD/os. -- Add entry and exit hooks to all dhcp client scripts, along with a - make_resolv_conf function that can be redefined in the entry hooks. - Document this new feature set. +- Fix a bunch of memory leaks. -- Fix client to take advantage of network APIs that allow it to - receive a unicast instead of requesting that the DHCP server - broadcast its response. +- Fix a couple of bugs in the option printer. -- Add -pf flag to all daemons allowing user to specify PID file name - on command line. +- Fix an obscure error reporting bug in the dns update code, and also + make the message clearer when a key algorithm isn't supported. -- Undo a previous change that attempted to be clever about testing - interface flags but wound up being stupid instead. +- Fix a bug in the tracing code that prevented trace runs that used + tcp connections from being played back. -- Enforce access control on DHCPREQUEST messages as well as - DHCPDISCOVER messages. +- Add some additional debugging capability for catching memory leaks + on exit. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 18 +- Make the client release the lease correctly on shutdown. -- Support added for AIX 4.1.5.0 (and hopefully other versions). +- Add some configurability to the build system. -- Use /var/run instead of /etc on Digital Unix. +- Install omshell manual page in man1, not man8. -- Change DHCP client exponential backoff code to back off more slowly, - so that it is more robust in lossy environments, at the expense of - being a bit less polite to the server. +- Craig Gwydir sent in a patch that fixes a long-standing bug in the + DHCP client that could cause core dumps, but that for some reason + hadn't been noticed until now. -- Don't request a specific lease interval in the client unless the - user says to do so. + Changes since 3.0 Release Candidate 7 -- Don't print DHCPXXX in wrong xxx messages unless DEBUG is defined. +- Fix a bug in failover where we weren't sending updates after a + transition from communications-interrupted to normal. -- Fix handling of secs field. +- Handle expired/released/reset -> free transition according to the + protocol specification (this works - the other way not only wasn't + conformant, but also didn't work). -- Fix handling of append statement. +- Add a control object in both client and server that allows either + daemon to be shut down cleanly. -- Fix documentation for append and prepend statements. +- When writing a lease, if we run out of disk space, shut down the + output file and insist on writing a new one before proceeding. -- Fix server support for parameter request list and maximum message - size. +- In the server, if the OMAPI listener port is occupied, keep trying + to get it, rather than simply giving up and exiting. -- Parameterize more hardware types in discover_interfaces. Check for - IFF_BROADCAST instead of !IFF_POINTOPOINT +- Support fetching variables from leases and also updating and adding + variables to leases via OMAPI. -- Print kernel configuration warning message if we get EINVAL when - opening or configuring the Linux packet filter. +- If two failover peers have wildly different clocks, refuse to start + doing failover. -- Fix a bug in UDP checksum code (thanks to John Nemeth for figuring - this out) and re-enable UDP checksumming. This allows the client - to work with some buggy DHCP servers that can't handle zero - checksums in the UDP header - in particular, the one John's cable - modem ISP is using. +- Fix a bug in the DNS update code that could cause core dumps when + running on alpha processors. -- Don't report packet header checksum errors unless we see a lot of - them. It's perfectly normal for some number of checksum errors to - occur. +- Fixed a bug in ddns updates for static lease entries, thanks to a + patch from Andrey M Linkevitch. -- Refer to the dhcpd.leases man page when printing an error message - prior to exiting because there's no lease database. +- Add support for Darwin/MacOS X -- Add information to the README telling the reader how to get to the - manual pages. +- Install omshell (including new documentation). -- Fix the server packet transmission code to unicast when it can. +- Support DNS updates in the client (this is a very obscure feature + that most DHCP client users probably will not be able to use). -- Fix a typo in the dhcpd.conf manual page. +- Somewhat cleaner status logging in the client. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 17 +- Make OMAPI key naming syntax compatible with the way keys are + actually named (key names are domain names). -- Fix a bug in the relay agent where messages to the client would be - unicast in the IP header but broadcast in the link header. The - Microsoft DHCP client would reject such packets, preventing it from - being configured. This was only a problem on non-socket-API - platforms. +- Fix a bug in the lease file writer. -- Do not attempt to reclaim requested abandoned leases in response to - DHCPDISCOVER messages. +- Install DHCP ISC headers in a different place than BIND 9 ISC + headers, to avoid causing trouble in BIND 9 builds. -- Allow the maximum lease time parameter in a host declaration to - override the maximum lease time parameter in a subnet declaration. +- Don't send updates for attributes on an object when the attributes + haven't changed. Support deleting attributes on remote objects. -- Better document the -p flag for dhclient, dhcrelay and dhcpd. +- Fix a number of bugs in omshell, and add the unset and refresh + statements. -- Apply John Wehle's patch to fix the endianness bug in the dlpi - packet filter on Solaris. +- Handle disconnects in OMAPI a little bit more intelligently (so that + the caller gets ECONNRESET instead of EINVAL). - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 16 +- Fix a bunch of bugs in the handling of clients that have existing + leases when the try to renew their leases while failover is + operating. -- Fix linux man page install location. + Changes since 3.0 Release Candidate 6 -- Fix some confusion in the dhclient-script man page. +- Fix a core dump that could happen when processing a DHCPREQUEST from + a client that had a host declaration that contained both a + fixed-address declaration and a dhcp-client-identifier option + declaration, if the client identifier was longer than nine bytes. -- Fix error in includes/cf/linux.h that would have made network API - selections in site.h work incorrectly. +- Fix a memory leak that could happen in certain obscure cases when + using omapi to manipulate leases. -- Fix some major stupidity in the code that figures out where or not a - client owns a particular lease. +- Fix some bugs and omissions in omshell. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 15 -- Fix Makefile.conf on Linux to refer to /var/state/dhcp instead of - /var/state/dhcpd. + Changes since 3.0 Release Candidate 5 -- Eliminate redundant #defines in includes/cf/linux.h (for neatness). +- Fix a bug in omapi_object_dereference that prevented objects in + chains from having their reference counts decreased on dereference. -- Fix an obscure case where dhcpd is started by the /etc/rc system - with exactly the same pid each time, dhcpd.pid is not erased on - reboot, and therefore dhcpd would detect a server (itself) with the - pid in dhcpd.pid and decide that another server was running and - exit. +- Fix a bug in omapi_object_dereference that would prevent object + chains from being freed upon removal of the last reference external + to the chain. + +- Fix a number of other memory leaks in the OMAPI protocol subsystem. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 14 +- Add code in the OMAPI protocol handler to trace memory leakage. -- Install the dhcp databases in /var/state/dhcp instead of /etc or - /var/dhcpd, as suggested in the Linux Filesystem Hierarchy - Standard. +- Clean up the memory allocation/reference history printer. -- Fix an endianness bug in dlpi.c. As a consequence, make the - Solaris/i386 use dlpi again. +- Support input of dotted quads and colon-seperated hex lists as + attribute values in omshell. -- Fix a bunch of bugs in the Solaris client script. +- Fix a typo in the linux interface discovery code. -- Add some more information about Solaris to the README file. +- Conditionalize a piece of trace code that wasn't conditional. -- Adjust startup message in interface probe so that the relay agent - and client's unattached status will not trigger questions. + Changes since 3.0 Release Candidate 4 -- Update some error messages to provide more help to new users for - some common mistakes. +- Fix a bug that would prevent leases from being abandoned properly on + DHCPDECLINE. -- Create an interface alias on Solaris when setting up IP aliases, - rather than trying to do things the *BSD way. +- Fix failover peer OMAPI support. -- Fix a null pointer dereference bug (this time I went through the - whole function and audited it for more null pointer dereferences, - and I didn't find any, for what that's worth). +- In failover, correctly handle expiration of leases. Previously, + leases would never be reclaimed because they couldn't make the + transition from EXPIRED to FREE. -- Don't ever release leases in response to a DHCPDISCOVER (I think - this was unlikely anyway, but why not be correct?). +- Fix some broken failover state transitions. -- Remove the shared-network example from the sample dhcpd.conf file. +- Documentation fixes. -- Make ``make install'' make all first. +- Take out an unnecessary check in DHCP relay agent information option + stashing code that was preventing REBINDING clients from rebinding. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 13 +- Prevent failover peers from allocating leases in DHCPREQUEST + processing if the lease belongs to the other server. -- Support DESTDIR on installs. +- Record server version in lease file introductory comment. -- Fix a bug in dhcp.c where a store through a null pointer would - be made under some reasonably common circumstances. +- Correctly report connection errors in OMAPI and failover. -- Add test for ARPHRD_TUNNEL so that client and server do not fail on - versions of Linux running IPsec implementations or the like. +- Make authentication signature algorithm name comparisons in OMAPI + case-insensitive. -- Move tests for constants defined in O.S. headers into osdep.h - test - for HAVE_whatever in .c files. Define relevant HAVE_whatevers in - linux.h, so that versions of linux that define these constants as - enums will still work. +- Fix compile problem on SunOS 4.x - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 12 +- If a signature algorithm is not termined with '.', terminate it so + that comparisons between fully-qualified names will work + consistently. -- Initialize the "quiet" variable in dhclient.c to zero (it was used - without first having been initialized). +- Different SIOCGIFCONF probe code, may "fix" problem on some Linux + systems with the probe not working correctly. -- Fix the parser code for the authoritative keyword. +- Don't allow user to type omapi key on command line of omshell. -- Adjust lease discovery code to NAK more aggressively for addresses - the server knows it owns. + Changes since 3.0 Release Candidate 3 -- Add several new messages for DHCPNAK. +- Do lease billing on startup in a way that I *think* will finally do + the billing correctly - the previous method could overbill as a + result of duplicate leases. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 11 +- Document OMAPI server objects. -- Use DLPI only on sparcs running Solaris, since it seems not to work - on i386 boxes running Solaris for reasons yet to be determined. + Changes since 3.0 Release Candidate 2 Patchlevel 1 -- In the client, close standard I/O descriptors when forking a daemon. +- Fix some problems in the DDNS update code. Thanks to Albert + Herranz for figuring out the main problem. -- Don't let large lease lengths wrap lease expiry times - just use - what fits into a TIME value. +- Fix some reference counting errors on host entries that were causing + core dumps. -- Fix a bug in the SIOCGIFCONF interface scanning code. +- Fix a byte-swap bug in the token ring code, thanks to Jochen + Friedrich. -- Fix a core dump in the interface scanner that crops up on Linux when - an interface is specified on the command line. +- Fix a bug in lease billing, thanks to Jonas Bulow. -- Don't use %D in strftime because egcs complains about it. + Changes since 3.0 Release Candidate 2 -- Print the error message if SO_BINDTODEVICE fails. +- Change the conditions under which a DHCPRELEASE is actually + committed to be consistent with lease binding states rather than + using the lease end time. THis may fix some problems with the + billing class code. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 10 +- Fix a bug where lease updates would fail on Digital Unix (and maybe + others) because malloc was called with a size of zero. -- Update top-level Makefile so that it exits correctly on errors in - submakes under bash/gnu make (dunno which is the culprit, and don't - really care). +- Fix a core dump that happens when the DHCP server can't create its + trace file. -- Print a more helpful message if no free BPF devices are found. + Changes since 3.0 Release Candidate 1 Patchlevel 1 -- Add support for specifying that the server is or is not - authoritative for a particular network segment. +- Fix the dhcp_failover_put_message to not attempt to allocate a + zero-length buffer. Some versions of malloc() fail if you try to + allocate a zero-length buffer, and this was causing problems on, + e.g., Digital Unix. -- Fix two stupid typos in lpf.c. +- Fix a case where the failover code was printing an error message + when no error had occurred. -- Print a more helpful message if we can't create an LPF socket or - can't attach a filter to it. +- Fix a problem where when a server went down and back up again, the + peer would not see a state transition and so would stay in the + non-communicating state. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 9 +- Be smart about going into recover_wait. -- Correct the hopelessly outdated information about Linux at the top - of the README - many apologies to the Linux people who have had to - read that nonsense for the past couple of snapshots and have been - confused or annoyed by it. I simply hadn't read it recently, and - didn't realize how out-of-date it was. +- Fix a problem in the failover implementation where peers would fail + to come into sync if interrupted in the RECOVER state. This could + have been the cause of some problems people have reported recently. -- Print a message if the client finds no broadcast interfaces to - configure. +- Fix a problem with billing classes where they would not be unbilled + when the client lease expired. -- Add support for use-lease-addr-for-default-route flag in server, so - that Windows machines can be made to ARP for all addresses. +- If select fails, figure out which descriptor is bad, and cut it out + of the I/O loop. This prevents a potentially nasty spin. I + haven't heard any report it in a while, but it came up consistently + in testing. -- Update README file to mention new Linux gotchas. +- Fix a bug in the relay agent where if you specified interfaces on + the command line, it would fail. -- After finally understanding Brian Murrel's code (my fault, not his) - to get interface names from /proc/net/dev on Linux, fix what I broke - of his code and document it. +- Fix a couple of small bugs in the omapi connection object (no known + user impact). -- Use sendto rather than send for SOCK_PACKET sockets, because they - can't be connected, only bound. :'( +- Add the missing 3.0 Beta 1 lease conversion script. -- Fix up SOCK_PACKET creation so that the kernel doesn't complain - about it. +- Read dhcp client script hooks if they exist, rather than only if + they're executable. -- Fix incorrect tests in linux client script: - [ $relmajor == 2 ] -> [ $relmajor -eq 2 ] + Changes since 3.0 Release Candidate 1 -- Make typedefs for u8, u16 and u32 types. These are Linux kernel - internal data types which are unfortunately exposed in the linux - packetfilter header file. +- Fix a memory smash that happens when fixed-address leases are used. + ANY SITE AT WHICH FIXED-ADDRESS STATEMENTS ARE BEING USED SHOULD + UPGRADE IMMEDIATELY. This has been a long-standing bug - thanks to + Alvise Nobile for discovering it and helping me to find it! -- Don't include <net/ethernet.h> in lpf.c - it defines things we're - already correctly defining elsewhere, and doesn't define any useful - new stuff. +- Fix a small bug in binary-to-ascii, thanks to H. Peter Anvin of + Transmeta. -- Finally fix client PREINIT bug that causes interfaces not specified - on the command line to be preinitialized. If no interfaces are - specified on the command line, all interfaces are still - preinitialized. +- There is a known problem with the DHCP server doing failover on + Compaq Alpha systems. This patchlevel is not a release candidate + because of this bug. The bug should be straightforward to fix, so + a new release candidate is expected shortly. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 8 +- There is a known problem in the DDNS update code that is probably a + bug, and is not, as far as we know, fixed in this patchlevel. -- Fix socket API fallback setup code, which was causing Linux servers - and clients to loop endlessly on select when run as daemons. + Changes since 3.0 Beta 2 Patchlevel 24 -- Add support for Linux 2.2 version number (treated the same as Linux - 2.1, for now). +- Went over problematic failover state transitions and made them all + work, so that failover should now much less fragile. -- Correct apparent error in DHCPREQUEST destination address handling - when in INIT-REBOOT state. +- Add some dhcpctl and omapi documentation -- Do not set BROADCAST flag if we have a valid IP address. +- Fix compile errors when compiling with unusual predefines. -- Remove hard-coded filenames and use system-specific manifest - constants. +- Make Token Ring work on Linux 2.4 -- Add entry and exit hooks to Linux dhclient-script (should be added - to all operating systems once tested). +- Fix the Digital Unix BPF_WORDALIGN bug. -- Test for linux major and minor version so as to correctly invoke - network configuration programs. +- Fix some dhcp client documentation errors. -- Add support for Linux's gratuitous name change of bpf_insn structure - (can't pollute precious Linux sources with the "Berkeley" word, I - guess. +- Update some parts of the README file. -- Correct USE_BPF_{SEND,RECEIVE} ifdefs for if_reinitialize_* - functions. +- Support GCC on SCO. -- Ensure that we have ifreq structure before initializing interface - - if an interface was specified on the command line on Linux, this was - not the case. + Changes since 3.0 Beta 2 Patchlevel 23 -- Get rid of references to enstamp structure in lpf.c. Correctly - declare and initialize sock_fprog structure (aka bpf_filter - structure on non-Linux machines). +- Fix a bug in the DNS update code where a status code was not being + checked. This may have been causing core dumps. -- Define ssize_t on Ultrix. +- When parsing the lease file, if a lease declaration includes a + billing class statement, and the lease already has a billing class, + unbill the old class. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 7 +- When processing failover transactions, where acks will be deferred, + process the state transition immediately. -- Generalize FDDI support. +- Don't try to use the new SIOCGIFCONF buffer size detection code on + Linux 2.0, which doesn't provide this functionality. -- Fix potential core dump in interface discovery code. +- Apply a patch suggested by Tuan Uong for a problem in dlpi.c. -- Put explicit release versions on startup messages. +- Fix a problem in using the which command in the configure script. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 6 +- Fix a parse error in the client when setting up an omapi listener. -- Add support for Linux Packet Filter (thanks to Brian Murrell, Interlinx). +- Document the -n and -g flags to the client. -- Add support for FDDI hardware type. +- Make sure there is always a stdin and stdout on startup. This + prevents shell scripts from accidentally writing error messages into + configuration files that happen to be opened as stderr. -- Fix a long-standing bug in DLPI support where the ethertype was - being set incorrectly (thanks to Gong Wei, CCENet). +- If an interface is removed, the client will now notice that it is + gone rather than spinning. This has only been tested on NetBSD. -- Don't use DLPI RAW mode on Solaris. +- The client will attempt to get an address even if it can't create a + lease file. -- In the client, when a lease expires, the interface to which that - lease is attached is unconfigured. On systems that use the socket - API, the interface needs to then be reconfigured with the 0.0.0.0 - address so that it can be used to get a new address. +- Don't overwrite tracefiles. -- Add fallback support for Linux. This fixes a problem with the - relay agent when relaying over non-broadcast links, and may also fix - some obscure problems with unicasting DHCPACKs in both the server and - relay agent. +- Fix some memory allocation bugs in failover. -- When allocating leases, if the oldest lease is abandoned, try to - find a younger-but-still-expired lease rather than reclaiming the - abandoned lease. + Changes since 3.0 Beta 2 Patchlevel 22 -- Add more documentation to README. +- Apply some patches suggested by Cyrille Lefevre, who is maintaining + the FreeBSD ISC DHCP Distribution port. -- The absence of the /etc/dhclient.conf file is no longer considered - an error. +- Fix a core dump in DHCPRELEASE. -- The dhcp client's lease file name can be specified on the command - line. + Changes since 3.0 Beta 2 Patchlevel 21 -- The DHCP client should no longer zap interfaces that it has not been - directed to configure. +- This time for sure: fix the spin described in the changes for pl20. -- If a client starts up in the init-reboot state, the xid will be a - "random" number rather than always being zero, as was previously the - case. + Changes since 3.0 Beta 2 Patchlevel 20 -- In addition to comparing transaction IDs, compare hardware addresses - in response packets to verify that they are ours. +- Fix a problem with Linux detecting large numbers of interfaces (Ben) -- Rewrite the client lease database after 20 leases have been written. +- Fix a memory smash in the quotify code, which was introduced in + pl19. -- Fix the exponential backoff code. +- Actually fix the spin described in the changes for pl20. The + previous fix only partially fixed the problem - enough to get it + past the regression test. -- Add a Y2k comment to indicate that something suspicious-looking is - in fact _not_ a problem. + Changes since 3.0 Beta 2 Patchlevel 19 -- Use mkstemp if possible. +- Fix a bug that could cause the server to abort if compiled with + POINTER_DEBUG enabled. -- Add missing fi in various client scripts. +- Fix a bug that could cause the server to spin when responding to a + DHCPREQUEST. -- Use "search" instead of "domain" in linux resolv.conf files. +- Apply Joost Mulders' suggested patches for DLPI on x86. -- Specify a hop count in all route command on solaris. +- Support NUL characters in quoted strings. -- If an allocation fails, don't try to zero out the allocation buffer - we didn't get. +- Install unformatted man pages on SunOS. -- Support subnets that are subsets of other subnets - that is, for - example, 10.0.1.0/24 and 10.0.0.0/16. This is useful in fairly - obscure circumstances. + Changes since 3.0 Beta 2 Patchlevel 18 -- Don't set the lease end time if it's already expired. +- Allow the server to be placed in partner-down state using OMAPI. + (Damien Neil) -- Don't define INADDR_LOOPBACK on FreeBSD if it's already defined in a - system header. +- Implement omshell, which can be used to do arbitrary things to the + server (in theory). (Damien Neil) -- Use the broadcast address in the relay agent if we are using the BSD - socket API. +- Fix a case where if a client had two different leases the server could + actually dereference the second one when it hadn't been referenced, + leading to memory corruption and a core dump. (James Brister) -- Allow host declarations without names. +- Fix a case where a client could request the address of another client's + lease, but find_lease wouldn't detect that the other client had it, and + would attempt to allocate it to the client, resulting in a lease conflict + message. -- Allow the server identifier option to be specified. +- Fix a case where a client with more than one client identifier could be + given a lease where the hardware address was correct but the client + identifier was not, resulting in a lease conflict message. -- Don't dump hostnames into the lease file if they contain - non-printable characters. +- Fix a problem where the server could write out a colon-seperated + hex list as a value for a variable, which would then not parse. + The fix is to always write strings as quoted strings, with any + non-printable characters quoted as octal escape sequences. So + a file written the old way still won't work, but new files written + this way will work. -- Copy the entire client hardware address buffer that the client sends - to the output packet, not just the portion of it that's supposedly - significant according to the hardware address length field. This - is done for the benefit of certain Microsoft clients. +- Fix documentation for sending non-standard options. -- Don't send a second ICMP echo request if we receive two DHCPDISCOVER - messages in quick succession. This prevents a rather annoying - timing race in configuring some Win95 clients. +- Use unparsable names for unknown options. WARNING: this will + break any configuration files that use the option-nnn convention. + If you want to continue to use this convention for some options, + please be sure to write a definition, like this: -- Fix up dhcp-options man page to make it more readable. Note that - netbios-name-server is the same thing as WINS. + option option-nnn code nnn = string; - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 5 + You can use a descriptive name instead of option-nnn if you like. -- Define some extra DLPI support flags that make DLPI work much better - on Solaris. +- Fix a problem where we would see a DHCPDISCOVER/DHCPOFFER/ + DHCPREQUEST/DHCPACK/DHCPREQUEST/DHCPNAK sequence. This was the + result of a deceptively silly bug in supersede_lease. -- Fix inet_aton prototype/declaration to match Internet Software - Consortium BIND distribution. +- Fix client script exit status check, according to a fix supplied by + Hermann Lauer. -- Document new server-identifier functionality. +- Fix an endianness bug in the tracefile support, regarding ICMP + messages. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 4 +- Fix a bug in the client where the medium would not work correctly if + it contained quoted strings. -- Do not use -Wstrict-prototypes on Solaris with gcc - if the Internet - Software Consortium BIND distribution is not installed, this produces - errors. + ** there was no pl17 ** -- Actually use the new DLPI support on Solaris - although the code was - added in Patchlevel 2, it wasn't enabled (blush). + Changes since 3.0 Beta 2 Patchlevel 16 -- Fix a prototype bug that's exposed when DLPI support is enabled on +- Add support for transaction tracing. This allows the state of the + DHCP server on startup, and all the subsequent transactions, to be + recorded in a file which can then be played back to reproduce the + behaviour of the DHCP server. This can be used to quickly + reproduce bugs that cause core dumps or corruption, and also for + tracking down memory leaks. + +- Incorporate some bug fixes provided by Joost Mulders for the DLPI + package which should clear up problems people have been seeing on Solaris. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 3 +- Fix bugs in the handling of options stored as linked lists (agent + options, fqdn options and nwip options) that could cause memory + corruption and core dumps. -- Fix a makefile botch that prevents the DHCP Distribution from - from compiling on Solaris with gcc. Sigh. +- Fix a bug in DHCPREQUEST handling that resulted in DHCPNAK messages + not being send in some cases when they were needed. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 2 +- Make the lease structure somewhat more compact. -- Allow server-identifier in any scope. Use in-scope server - identifier option rather than the default, if one exists. +- Make initial failover startup *much* faster. This was researched + and implemented by Damien Neil. -- Delete newlines from abandoned lease reclaimation warning. +- Add a --version flag to all executables, which prints the program + name and version to standard output. -- Only release other applicable leases held by a client when the - client sends a DHCPREQUEST. +- Don't rewrite the lease file every thousand leases. -- Fix core dump when find_lease didn't find a lease. +- A bug in nit.c for older SunOS machines was fixed by a patch sent in + by Takeshi Hagiwara. -- Update dhcpd.leases man page. +- Fix a memory corruption bug in the DHCP client. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 1 +- Lots of documentation updates. -- Use -Wno-char-subscript on Solaris to prevent bogus warnings from - gcc on Solaris 2.6. +- Add a feature allowing environment variables to be passed to the + DHCP client script on the DHCP client command line. -- Add support for Apple's new Rhapsody operating system. +- Fix client medium support, which had been broken for some time. -- Use DLPI on Solaris instead of using the BSD Sockets API. +- Fix a bug in the DHCP client initial startup backoff interval, which + would cause two DHCPDISCOVERS to be sent back-to-back on startup. -- Fix two network input buffer overflow problems which could allow an - attacker to pervert the stack. -- Fix an ancient typo that could theoretically cause memory - corruption. + Changes since 3.0 Beta 2 Patchlevel 15 -- Sort abandoned leases in at current time rather than end of time. - This allows abandoned leases to be reclaimed if there are no - available free leases. +- Some documentation tweaks. -- If a client explicitly requests a lease that's been abandoned, it's - probably the system that was answering pings on that address, so let it - have the lease. +- Maybe fix a problem in the DLPI code. -- Fix a bunch of type conversion errors that are flagged by the Solaris - C compiler. +- Fix some error code space inconsistencies in ddns update code. - CHANGES FROM VERSION 2.0 BETA 1 PATCHLEVEL 0 +- Support relay agents that intercept unicast DHCP messages to stuff + agent options into them. -- Fix two potential buffer overflow problems. +- Fix a small memory leak in the relay agent option support code. -- Differentiate between versions of Linux for better success in - compiling. +- Fix a core dump that would occur if a packet was sent with no + options. -- Fix bug in linux client script regarding routing setup. + Changes since 3.0 Beta 2 Patchlevel 14 -- Clarify socket API error message on multiple interfaces. +- Finish fixing a long-standing bug in the agent options code. This + was causing core dumps and failing to operate correctly - in + particular, agent option stashing wasn't working. Agent option + stashing should now be working, meaning that agent options can be + used in class statements to control address allocation. -- Fix broken comparison that was setting IP source address to zero. +- Fix up documentation. -- Reclaim abandoned leases if we run out of free leases. +- Fix a couple of small memory leaks that would have added up + significantly in a high-demand situation. - CHANGES FROM THE DECEMBER 2, 1997 SNAPSHOT +- Add a log-facility configuration parameter. -- Use %ld to print pid_t and cast pid_t values to long to avoid - inconsistent declarations between different POSIX flavours. +- Fix a compile error on some older operating systems. -- Add support for ARPHRD_IEEE802 (token ring) hardware type. +- Add the ability in the client to execute certain statements before + transmitting packets to the server. Handy for debugging; not much + practical use otherwise. -- If we own an address and a client requests it, but we can't assign - it to that client, we now NAK it so that the client doesn't try to - reuse it. +- Don't send faked-out giaddr when renewing or bound - again, useful + for debugging. - CHANGES FROM THE JUNE SNAPSHOT + Changes since 3.0 Beta 2 Patchlevel 13 -- Support for NeXTstep 3.x and 4.x +- Fixed a problem where the fqdn decoder would sometimes try to store + an option with an (unsigned) negative length, resulting in a core + dump on some systems. -- Added man pages for dhcpd.leases, dhclient-script, dhclient.leases - and dhclient.conf. Move general documentation of DHCP options into - a seperate man page which is referred to by the dhclient.conf and - dhcpd.conf man pages. +- Work around the Win98 DHCP client, which NUL-terminates the FQDN + option. -- Updated README to answer some frequently asked questions. +- Work around Win98 and Win2k clients that will claim they want to do + the update even when they don't have any way to do it. -- Fixed a bug in command-line interface specification in dhclient - it - was formerly not possible to specify that only certain interfaces be - configured. +- Fix some log messages that can be printed when failover is operating + that were not printing enough information. -- Do not leave client scripts lying around in /tmp after they've been - used unless the -D flag is specified. +- It was possible for a DHCPDISCOVER to get an allocation even when + the state machine said the server shouldn't be responding. -- Add a new, non-standard, not-guaranteed-to-stay-the-same system - configuration status message server which can be used to trigger the - client to recheck its address, e.g., after a laptop has been put to - sleep and then awakened (this has yet to be documented). +- Don't load balance DHCPREQUESTs from clients in RENEWING and + REBINDING, since in RENEWING, if we heard it, it's for us, and in + REBINDING, the client wouldn't have got to REBINDING if its primary + were answering. -- Fix handling of media selection in the REBOOT phase - previously the - media type would not be remembered, which could cause severe delays - in reacquiring an address if the default media type was wrong. +- When we get a bogus state lease binding state transition, don't do + the transition. + -- Allocate space for a NUL terminator on the end of client options - - this was previously overlooked, and could cause garbage characters - to be written to the temporary client script files. + Changes since 3.0 Beta 2 Patchlevel 12 -- Use mkstemp if it's available. +- Fixed a couple of silly compile errors. -- Supply network number and broadcast address to the client script so - that on systems that need these values, they don't need to be - computed with an awk script. + Changes since 3.0 Beta 2 Patchlevel 11 -- Keep a PID file for the client and the relay agent, and have the - relay agent background itself by default. +- Albert Herranz tracked down and fixed a subtle bug in the base64 + decoder that would prevent any key with an 'x' in its base64 + representation from working correctly. -- Add client script for bsd/os, fix many niggling bugs in existing - client scripts and add support for static routing tables to all bsd - scripts. +- Thanks to Chris Cheney and Michael Sanders, we have a fix for the + hang that they both spotted in the DHCP server - when + one-lease-per-client was set, the code to release the "other" lease + could spin. -- Add a -q option to the client, server and relay agent so that they - can be started from /etc/rc scripts without spewing a bunch of - garbage on the console. By default, all three daemons still print - startup messages, since these are helpful in bug reporting. +- Fix a problem with alignment of the input buffer in bpf in cases + where two packets arrive in the same bpf read. -- Don't print anything to stderr or stdout after going into - background. +- Fix a problem where the relay agent would crash if you specified an + interface name on the command line. -- Fix bug where hostname keyword was not being recognized in - dhcpd.leases file, resulting in the loss of lease database entries. +- Add the ability to conditionalize client behaviour based on the + client state. -- Fix problem on some operating systems where zero-length ifreq - structures were being offset incorrectly when scanning the interface - list on startup. +- Add support for the FQDN option, and added support for a new way of + doing ddns updates (ddns update style interim) that allows more than + one DHCP server to update the DNS for the same network(s). This + was implemented by Damien Neil with some additional functionality + added by Ted Lemon. -- Unless a BOOTP client requests it, never send more than 64 bytes of - options. +- Damien added a "log" statement, so that the configuration file can + be made to log debugging information and other information. + +- Fixed a bug that caused option buffers not to be terminated with an + end option. + +- Fixed a long-standing bug in the support for option spaces where the + options are stored as an ordered list rather than in a hash table, + which could theoretically result in memory pool corruption. + +- Prevent hardware declarations with no actual hardware address from + being written as something unparsable, and behave correctly in the + face of a null hardware address on input. + +- Allow key names to be FQDNs, and qualify the algorithm name if it is + specified unqualified. + +- Modify the DDNS update code so that it never prints the "resolver + failed" message, but instead says *why* the resolver failed. + +- Officially support the subnet selection option, which now has an + RFC. + +- Fix a build bug on MacOS X. + +- Allow administrator to disable ping checking. + +- Clean up dhcpd.conf documentation and add more information about how + it works. + + Changes since 3.0 Beta 2 Patchlevel 10 + +- Fix a bug introduced during debugging (!) and accidentally committed + to CVS. + + Changes since 3.0 Beta 2 Patchlevel 9 + +- Fix DHCP client handling of vendor encapsulated options. + +- Fix a bug in the handling of relay agent information options introduced + in patchlevel 9. + +- Stash agent options on client leases by default, and use the stashed + options at renewal time. + +- Add the ability to test the client's binding state in the client + configuration language. + +- Fix a core dump in the DNS update code. + +- Fix some expression evaluation bugs that were causing updates to be + done when no client hostname was received. + +- Fix expression evaluation debugging printfs. + +- Teach pretty_print_option to print options in option spaces other than + the DHCP option space. + +- Add a warning message if the RHS of a not is not boolean. + +- Never select for more than a day, because some implementations of + select will just fail if the timeout is too long (!). + +- Fix a case where a DHCPDISCOVER from an unknown network would be + silently dropped. + +- Fix a bug where if a client requested an IP address for which a different + client had the lease, the DHCP server would reallocate it anyway. + +- Fix the DNS update code so that if the client changes its name, the DNS + will be correctly updated. + + Changes since 3.0 Beta 2 Patchlevel 8 + +- Oops, there was another subtle math error in the header-length + bounds-checking. + + Changes since 3.0 Beta 2 Patchlevel 7 + +- Oops, forgot to byte-swap udp header length before bounds-checking it. + + Changes since 3.0 Beta 2 Patchlevel 6 -- Don't ping static leases, since we don't have a lease structure on - the heap to work with later. +- Fix a possible DoS attack where a client could cause the checksummer + to dump core. This was a read, not a write, so it shouldn't be + possible to exploit it any further than that. -- Fixed a compile problem on Solaris 2.6. +- Implement client- and server-side support for using the Client FQDN + option. -- Support interface aliases on Solaris. +- Support for other option spaces in the client has been added. This + means that it is now possible to define a vendor option space on the + client, request options in that space from the server (which must + define the same option space), and then use those options in the + client. This also allows NWIP and Client FQDN options to be used + meaningfully. -- Print day and month with leading zero in lease files if less than - ten, for easier parsing by perl/sed/awk scripts. +- Add object initializer support. This means that objects can now be + initialized to something other than all-zeros when allocated, which + makes, e.g., the interface object support code a little more robust. -- Never make the lease database world writable, even if dhcpd is - invoked with a bogus umask. +- Fix an off-by-one bug in the host stuffer. This was causing host + deletes not the work, and may also have been causing OMAPI + connections to get dropped. Thanks to James Brister for tracking + this one down! -- Fix DHCPRELEASE handling (before, addressed would never be - released.) +- Fixed a core dump in the interface discovery code that is triggered + when there is no subnet declaration for an interface, but the server + decides to continue running. Thanks to Shane Kerr for tracking + down and fixing this problem. -- If there is more than one lease for a particular client on a - particular network, find the lease the client is asking for so as to - avoid a cycle of NAKs. + Changes since 3.0 Beta 2 Patchlevel 5 -- If a BOOTP request is received from a particular client and that - client has previously received a DHCP address, make sure that we - still find a valid BOOTP lease so that we don't cycle through - addresses. +- Fix a bug in the recent enhancement to the interface discovery code + to support arbitrary-length interface lists. -- Remove server-identifier option from documentation, other than to - document that it has been deprecated. +- Support NUL-terminated DHCP options when initializing client-script + environment. -- Don't give up if we get an EINTR or EAGAIN while polling or - selecting - these return statuses can occur spuriously without - indicating a fatal problem. +- Fix suffix operator. + +- Fix NetWare/IP option parsing. + +- Better error/status checking in dhcpctl initialization and omapi + connection code. + +- Fix a potential memory smash in dhcpctl code. + +- Fix SunOS4 and (maybe) Ultrix builds. + +- Fix a bug where a certain sort of incoming packet could cause a core + dump on Solaris (and probably elsewhere). + +- Add some more safety checks in error logging code. + +- Add support for ISC_R_INCOMPLETE in OMAPI protocol connection code. + +- Fix relay agent so that if an interface is specified on the command + line, the relay agent does not dump core. + +- Fix class matching so that match if can be combined with match or + spawn with. + +- Do not allow spurious leases in the lease database to introduce + potentially bogus leases into the in-memory database. + +- Fix a byte-order problem in the client hardware address type code + for OMAPI. + +- Be slightly less picky about what sort of hardware addresses OMAPI + can install in host declarations. + + Changes since 3.0 Beta 2 Patchlevel 4 + +- Incorporated Peter Marschall's proposed change to array/record + parsing, which allows things like the slp-agent option to be encoded + correctly. Thanks very much to Peter for taking the initiative to + do this, and for doing such a careful job of it (e.g., updating the + comments)! + +- Added an encoding for the slp-agent option. :') + +- Fixed SunOS 4 build. Thanks to Robert Elz for responding to my + request for help on this with patches! + +- Incorporated a change that should fix a problem reported by Philippe + Jumelle where when the network connection between two servers is + lost, they never reconnect. + +- Fix client script files other than that for NetBSD to actually use + make_resolv_conf as documented in the manual page. + +- Fix a bug in the packet handling code that could result in a core + dump. + +- Fix a bug in the bootp code where responses on the local net would + be sent to the wrong MAC address. Thanks to Jerry Schave for + catching this one. + + Changes since 3.0 Beta 2 Patchlevel 3 + +- In the DHCP client, execute client statements prior to using the values + of options, so that the client configuration can overried, e.g., the + lease renewal time. + +- Fix a reference counting error that would result in very reproducible + failures in updates, as well as occasional core dumps, if a zone was + declared without a key. + +- Fix some Linux 2.0 compilation problems. + +- Fix a bug in scope evaluation during execution of "on" statements that + caused values not to be recorded on leases. + +- If the dhcp-max-message-size option is specified in scope, and the + client didn't send this option, use the one specified in scope to + determine the maximum size of the response. + + Changes since 3.0 Beta 2 Patchlevel 2 + +- Fix a case where spawning subclasses were being allocated + incorrectly, resulting in a core dump. + +- Fix a case where the DHCP server might inappropriately NAK a + RENEWING client. + +- Fix a place dhcprequest() where static leases could leak. + +- Include memory.h in omapip_p.h so that we don't get warnings about + using memcmp(). + + Changes since 3.0 Beta 2 Patchlevel 1 + +- Notice when SIOCFIGCONF returns more data than fit in the buffer - + allocate a larger buffer, and retry. Thanks to Greg Fausak for + pointing this out. + +- In the server, if no interfaces were configured, report an error and + exit. -- Do not select for exceptions, since we don't handle them. This was - causing massive CPU consumption on some systems. +- Don't ever record a state of 'startup'. -- When a DHCP client has been assigned a fixed address but had - previously had a lease, it will request the old leased address. In - such an event, send a DHCPNAK so that it will discover its new - static binding. +- Don't try to evaluate the local failover binding address if none was + specified. Thanks to Joseph Breu for finding this. |