David Hankins [Mon, 21 May 2007 22:09:07 +0000 (22:09 +0000)]
- 'dhcp.c(3953): non-null pointer' has been repaired. This fixes a flaw
wherein the DHCPv4 server may use seemingly random source addresses.
[ISC-Bugs #16897]
David Hankins [Mon, 21 May 2007 18:16:54 +0000 (18:16 +0000)]
- A bug in dhclient was repaired which caused it to send parameter request
lists of 55 bytes in length no matter how long the declared PRL was.
[ISC-Bugs #16882]
David Hankins [Sat, 19 May 2007 16:14:48 +0000 (16:14 +0000)]
Conditionally include ifaddrs.h if USE_BPF_RECEIVE is defined. 'struct
ifaddr' is only used if this method is being used for receive, and not all
systems have ifaddrs.h. [ISC Bugs #16865-p1].
David Hankins [Fri, 18 May 2007 17:21:46 +0000 (17:21 +0000)]
- DHCPv4 I/O methods that failed to sense hardware address were corrected.
[ISC-Bugs #16881]
- DHCPv4 is now the default (as documented) rather than DHCPv6. The default
was set to DHCPv6 to facilitate ease early development, and forgotten.
[ISC-Bugs #16881]
- Corrected a segmentation violation in DHCPv4 socket processing.
[ISC-Bugs #16881]
Assorted fixes for broken network devices: IP header length field is now
determined from payload, because some NIC drivers return more data than
they actually recived; IP and UDP packets now stored in aligned data
structures; outgoing packet TTL increased from 16 to 128. [rt15583]
A new server config option "fqdn-reply" specifies whether the server
should send out option 81 (FQDN). Defaults to "on". If set to "off",
the FQDN option is not sent, even if the client requested it. This is
needed because some clients misbehave otherwise. [rt16624]
David Hankins [Thu, 26 Apr 2007 20:06:25 +0000 (20:06 +0000)]
- The server's "by client-id" and "by hardware address" hash table lists
are now sorted according to the preference to re-allocate that lease to
returning clients. This should eliminate pool starvation problems
arising when "INIT" clients were given new leases rather than presently
active ones. [ISC-Bugs #16831]
David Hankins [Fri, 20 Apr 2007 15:25:26 +0000 (15:25 +0000)]
- Some bugs were fixed in the 'emergency relay agent options hologram'
which is used to retain relay agent option contents from when the
client was in INIT or REBIND states. This should solve problems where
relay agent options were not echoed from the server, even when giaddr
was set. [ISC-Bugs #16787]
David Hankins [Thu, 19 Apr 2007 21:35:12 +0000 (21:35 +0000)]
- Several spelling typos were repaired, and some cross-references to other
relevant documents were included in the manpages, thanks to a patch
by Andrew Pollock which got to us via Tomas Pospisek. [ISC-Bugs #16731]
David Hankins [Mon, 16 Apr 2007 17:32:02 +0000 (17:32 +0000)]
- Timestamp parsing errors that indicated missing "minutes" fields rather
than the actually missing "seconds" fields have been repaired thanks to
a patch from Kevin Steves. [ISC_Bugs #16505]
David Hankins [Tue, 3 Apr 2007 16:46:03 +0000 (16:46 +0000)]
- A new server config option, 'do-reverse-updates', has been added
which causes the server to abstain from performing updates on PTR
records. Thanks to a patch from Christof Chen at Allianz.
[ISC-Bugs #16781]
David Hankins [Tue, 3 Apr 2007 14:57:53 +0000 (14:57 +0000)]
- A bug was fixed where the BOOTP header 'sname' field had a value, the
copy written to persistent storage was actually the contents of the
'file' field. [ISC-Bugs #16784]
David Hankins [Tue, 27 Mar 2007 03:48:06 +0000 (03:48 +0000)]
- In the case where an "L2" DHCP Relay Agent (one that does not set giaddr)
was directly attached to the same broadcast domain as the DHCP server,
the RFC3046 relay agent information option was not being returned to the
relay in the server's replies. This was fixed; the dhcp server no longer
requires the giaddr to reply with relay agent information. Note that
this also improves compatibility with L2 devices that "intercept" DHCP
packets and expect relay agent information even in unicast (renewal)
replies. [ISC-Bugs #16762]
David Hankins [Tue, 7 Nov 2006 23:40:14 +0000 (23:40 +0000)]
- A logic error in omapi interface code was repaired that might result in
incorrectly indicating 'up' state when any flags were set, rather than
specifically the INTERFACE_REQUESTED flag. [ISC-Bugs #16431]
David Hankins [Fri, 27 Oct 2006 22:54:13 +0000 (22:54 +0000)]
- Some default hash table sizes were tweaked, some upwards, some downwards.
3.1.0a1's tables resulted in a reduction in default server memory use.
The new selected values provide more of a zero sum (increasing the size
of tables likely to be populated, decreasing the size of tables unlikely).
- Lease structures appear in three spearate hashes: by IP address, by UID,
and by hardware address. One type of table was used for all three, and
improvements to IP address hashing were applied to all three (so UID and
hardware addresses were treated like 4-byte integers). There are now two
types of tables, and the uid/hw hashes use functions more appropriate
to their needs.
- The max-lease-misbalance percentage no longer causes scheduled rebalance
runs to be skipped: it still governs the schedule, but every scheduled
run will attempt balance.
David Hankins [Wed, 27 Sep 2006 18:27:27 +0000 (18:27 +0000)]
- The servers now try harder to transmit pending binding updates when
entering normal state. [ISC-Bugs #16412]
- UPDREQ/UPDREQALL handling was optimized - it no longer dequeues and
requeues all pending updates. This should reduce the number of spurious
'xid mismatch' log mesasges. [ISC-Bugs #16412]
David Hankins [Mon, 31 Jul 2006 23:17:24 +0000 (23:17 +0000)]
- A new dhcp server option 'adaptive-lease-time-threshold' has been added
which causes the server to substantially reduce lease-times if there are
few (configured percentage) remaining leases. Thanks to a patch submitted
from Christof Chen. [ISC-Bugs #15409]
David Hankins [Mon, 31 Jul 2006 22:19:51 +0000 (22:19 +0000)]
- A new common configuration executable statement, execute(), has been
added. This permits dhcpd or dhclient to execute a named external
program with command line arguments specified from other configuration
language. Thanks to a patch written by Mattias Ronnblom, gotten to us
via Robin Breathe. [ISC-Bugs #13728]
David Hankins [Tue, 25 Jul 2006 17:41:18 +0000 (17:41 +0000)]
- DHCPD is now RFC2131 section 4.1 compliant (broadcast to all-ones ip and
ethernet mac address) on the SCO platform specifically without any strange
ifconfig hacks. Many thanks go to the Kroger Co. for donating the
hardware and funding the development. [V3-0-1-KROGER-WORK-BRANCH] - funded
development.
David Hankins [Thu, 20 Jul 2006 16:04:03 +0000 (16:04 +0000)]
- Host declaration hardware addresses and client identifiers may only be
configured once. dhcpd will now fail to load config files that specify
multiple identifiers (previous versions would silently over-ride the
value with the later configured value). [ISC-Bugs #15533]
David Hankins [Wed, 19 Jul 2006 20:13:57 +0000 (20:13 +0000)]
- 'ignore client-updates;' now has behaviour that is different from
'deny client-updates;'. The client's request is not truly ignored,
rather it is encouraged. Should this value be configured, the server
updates DNS as though client-updates were set to 'deny'. That is, it
enters into DNS whatever it is configured to do already, provided it is
configured to. Then it sends a response to the client that lets the
client believe it is performing client updates (which it will), probably
for a different name. In essence, this lets the client do as it will,
ignoring this aspect of their request. [ISC-Bugs #16185]