]> git.ipfire.org Git - thirdparty/dhcp.git/blame - RELNOTES
regenerate configure
[thirdparty/dhcp.git] / RELNOTES
CommitLineData
98311e4b 1 Internet Systems Consortium DHCP Distribution
fe5b0fdd
DH
2 Version 4.0.0a1
3 May 19, 2007
72c7bd79 4
98311e4b 5 Release Notes
72c7bd79 6
da411127 7 NEW FEATURES
16449d9c 8
98bd7ca0
DH
9The DHCP server in version 4.0.x of the ISC DHCP Distribution supports
10DHCPv6 in addition to DHCP for IPv4.
11
12Several new options have been added to the dhcpd executable, which are
13documented in the man page. Several changes have been made to the
14configuration file as well, which are also documented in the man
15pages.
16
17There are a number of DHCPv6 limitiations and features missing in this
18release, which will be addressed shortly:
19
99fe695e 20- Only Solaris, Linux, FreeBSD, NetBSD, and OpenBSD are supported.
98bd7ca0
DH
21
22- There is no DHCPv6 Relay support.
23
24- Only a single fixed address is supported per IA.
25
26- IA_TA addresses are not supported.
3a16098f 27
98bd7ca0 28- IA_PD prefixes are not supported.
29d5553a 29
98bd7ca0
DH
30- DHCPv6 includes human-readable text in status code messages. These
31 should be configurable, and probably localized via gettext() or the
32 like.
33
34- The "host-identifier" option is limited to a simple token.
35
36- Dynamically allocated leases do not respond to Confirm messages.
37
98bd7ca0
DH
38- The client and server can only operate DHCPv4 or DHCPv6 at a time,
39 not both, so two instances of the daemons are required with the
40 "-6" command line option.
4ff4053b 41
ca4606b5
TL
42For information on how to install, configure and run this software,
43as well as how to find documentation and report bugs, please consult
44the README file.
45
fe5b0fdd
DH
46ISC DHCP now uses standard GNU configure for installation. Please
47review the output of "./configure --help" to see what options are
48available.
49
50The system has only been tested on Linux, FreeBSD, and Solaris, and
51may not work on other platforms. Please report any problems and
52suggested fixes to <dhcp-users@isc.org>.
98bd7ca0 53
e889ded1 54
98bd7ca0
DH
55 Changes since 4.0.0-20070413
56
d9b43370
SK
57- Old (expired) leases are now cleaned.
58
8c1752d2
DH
59- IPv6 subnets now have support for arbitrary allocation ranges via
60 a new 'range6' configuration directive.
61
98bd7ca0
DH
62- An obviated option code hash lookup to find D6O_CLIENTID was removed.
63
a512d11b
DH
64- Corrected some situations where variables might be used without being
65 initialized.
66
67- Silenced several other compiler warnings.
68
69- Include the more standard sys/uio.h rather than rely upon other
f66f02cc
DH
70 header files to include it (fixes a BSD 4.2 compile failure).
71
72- Duplicate dhclient-script updates for DHCPv6 to all provided scripts.
a512d11b 73
4ba58919
DH
74- DHCPv4 I/O methods that failed to sense hardware address were corrected.
75
76- DHCPv4 is now the default (as documented) rather than DHCPv6. The default
77 was set to DHCPv6 to facilitate ease early development, and forgotten.
78
79- Corrected a segmentation violation in DHCPv4 socket processing.
80
8ea19a71
DH
81- dhclient will now fork() into the background once it binds to an
82 IPv6 address, or immediately if the -n flag is supplised.
83
84- -q is now the default behaviour on dhclient, with -d or -v enabling
85 non-quiet (stderr logging) mode.
86
2cf8d0bd
DH
87- Fix documentation of the domain-search atom (quoted, with commas).
88
89- Document DHCPv6 options presently in the default table.
90
fe5b0fdd
DH
91- Replaced ./configure shellscripting with GNU Autoconf.
92
98bd7ca0
DH
93 Changes since 3.1.0 (NEW FEATURES)
94
95- DHCPv6 Client and Server protocol support. Use '-6' to run the daemons
96 as v6-only. Use '-4' to run the daemons as v4-only (default. There is
97 no support currently for both.
98
99- Server support for multiple IA_NA options, containing at most one
100 IAADDR option.
101
102- Client support for one IA_NA option, containing any number of IAADDR
103 options.
104
105- Server support for the DHCPv6 Information-request message.
106
107- Inappropriate unicast DHCPv6 messages sent to the server are now
108 discarded, and this has rearchitected the IO system slightly.
109
110- The DHCPv6 server DUID defaults to type 1, is persistently stored in
111 the leases database, and can be over-ridden (either completely, or by
112 specifying type 1 or type 2).
113
114- The server only uses Rapid-Commit if it has been configured with the
115 Rapid-Commit option and the client requests it.
116
117- DDNS support. We now update AAAA records in the same place we would
118 update A records, if we have an IPv6 address. We also generate IP6.ARPA
119 style names for PTR records if we're dealing with an IPv6 address. Both
120 A and AAAA updates are done using the same 'fqdn.' virtual option space
121 (although the DHCPv4 FQDN and DHCPv6 FQDN options are formatted
122 differently, they both use the same code here).
123
124- The Linux dhclient-script attempts to set and remove assigned addresses,
125 and to configure /etc/resolv.conf from nameserver and domain name
126 configurations. It can be extended to configure other parameters.
127
128- Initial DHCPv6 lease support.
129
130- The IO system now tracks all local IP addresses, so that the DHCP
131 applications (particularly the dhcrelay) can discern between what frames
132 were transmitted to it, and what frames are being carried through it which
133 it should not intercept.
134
fe5b0fdd 135 Changes since 3.1.0b1
27837f95 136
74dc3e0b
EH
137- Fixed a bug that caused OMAPI clients to freeze when opening lease
138 objects.
139
1ba87b37
EH
140- A new server config option "fqdn-reply" specifies whether the server
141 should send out option 81 (FQDN). Defaults to "on". If set to "off",
142 the FQDN option is not sent, even if the client requested it. This is
143 needed because some clients misbehave otherwise. Thanks to Christof Chen
144 at Allianz.
145
a58da042
EH
146- Allow trace output files (-tf option) to be overwritten, rather than
147 crashing dhcpd if the file already exists
148
61252edf
EH
149- A bug was fixed that caused dhcpd to segfault if a pool was declared
150 outside the scope of a subnet in dhcpd.conf.
151
27837f95
DH
152- Some uninitialized values were repaired in dhcpleasequery.c that
153 caused the server to abort.
154
4d2eaafb
DH
155- A new server config option, 'do-reverse-updates', has been added
156 which causes the server to abstain from performing updates on PTR
157 records. Thanks to a patch from Christof Chen at Allianz.
158
06211b40
DH
159- A bug was repaired in subencapsulation support, where spaces separated
160 by empty spaces would not get included.
161
d6614ea2
DH
162- A bug in dhclient was repaired which caused it to send parameter request
163 lists of 55 bytes in length no matter how long the declared PRL was.
164
132d38f2
DH
165- 'dhcp.c(3953): non-null pointer' has been repaired. This fixes a flaw
166 wherein the DHCPv4 server may ignore a configured server-identifier.
167
fc3b9c90
DH
168- A flaw in failover startup sequences was repaired that sometimes left
169 the primary DHCP server's pool rebalance schedules unscheduled.
170
c57db45c
SK
171 Changes since 3.1.0a3
172
173- Some spelling fixes.
98311e4b 174
bd2bc2fa
DH
175 Changes since 3.1.0a2
176
177- A bug was fixed where attempting to permit leasequeries results in a
178 fatal internal error, "Unable to find server option 49".
179
85edef5c
DH
180- A bug was fixed in dhclient rendering the textual output form of the
181 domain-search option syntax.
182
bdddcb7d
DH
183 Changes since 3.1.0a1
184
185- A bug in the FQDN universe that added FQDN codes to the NWIP universe's
186 hash table was repaired.
187
616d67cb
DH
188- The servers now try harder to transmit pending binding updates when
189 entering normal state.
190
191- UPDREQ/UPDREQALL handling was optimized - it no longer dequeues and
192 requeues all pending updates. This should reduce the number of spurious
66c8f734
DH
193 'xid mismatch' log messages.
194
195- An option definition referencing leak was fixed, which resulted in early
196 termination of dhclient upon the renewal event.
616d67cb 197
6708d944
DH
198- Some default hash table sizes were tweaked, some upwards, some downwards.
199 3.1.0a1's tables resulted in a reduction in default server memory use.
200 The new selected values provide more of a zero sum (increasing the size
201 of tables likely to be populated, decreasing the size of tables unlikely).
202
203- Lease structures appear in three spearate hashes: by IP address, by UID,
204 and by hardware address. One type of table was used for all three, and
205 improvements to IP address hashing were applied to all three (so UID and
206 hardware addresses were treated like 4-byte integers). There are now two
207 types of tables, and the uid/hw hashes use functions more appropriate
208 to their needs.
209
210- The max-lease-misbalance percentage no longer causes scheduled rebalance
211 runs to be skipped: it still governs the schedule, but every scheduled
212 run will attempt balance.
213
a7ee93fe
DH
214- A segfault bug in recursive encapsulation support has been corrected.
215
98311e4b
DH
216 Changes since 3.0 (New Features)
217
218- A workaround for certain STSN servers that send a mangled domain-name
219 option was introduced for dhclient. The client will now accept corrupted
220 server responses, if they contain a valid DHCP_MESSAGE_TYPE (OFFER, ACK,
221 or NAK). The server will continue to not accept corrupt client packets.
222
98bd7ca0 223- Support for 'reserved' (pseudo-static) and BOOTP leases via failover
a55ccdd0 224 was introduced.
98311e4b
DH
225
226- Support for adding, removing, and managing class and subclass statements
227 via OMAPI.
228
a55ccdd0
DH
229- The failover implementation was updated to comply with revision 12 of
230 the protocol draft.
231
98311e4b
DH
232- 'make install' now creates the initial zero-length dhcpd.leases file if
233 one does not already exist on the system.
234
b43c87ad 235- RFC3942 compliance, site-local option spaces start at 224 now, not 128.
b43c87ad 236
0b17f049
DH
237- The Load Balance Algorithm was misimplemented. The current implementation
238 matches RFC 3074.
239
2727c1cf
DH
240- lcase() and ucase() configuration expressions have been added which adjust
241 their arguments from upper to lower and lower to upper cases respectively.
2714a8ef 242 Thanks to a patch from Albert Herranz.
2727c1cf 243
febbd402
DH
244- The dhclient 'reject ...;' statement, which rejects leases given by named
245 server-identifiers, now permits address ranges to be specified in CIDR
7d7073e7 246 notation. Thanks to a patch from David Boyce.
febbd402 247
ee912528
DH
248- The subnet-mask option is now supplied by default, but at lowest
249 priority. This helps a small minority of clients that provide parameter
250 request lists, but do not list the subnet-mask option because they were
251 designed to interoperate with a server that behaves in this manner.
252
253- The FQDN option is similarly supplied even if it does not appear on the
254 parameter request list, but not to the exclusion of options that do
255 appear at the parameter request list. Up until now it had ultimate
256 priority over the client's parameter request list.
257
f7fdb216 258- Varying option space code and length bit widths (8/16/32) are now
51202707 259 supported. This is a milestone in achieving RFC 3925 "VIVSO" and
f7fdb216
DH
260 DHCPv6 support.
261
5e864416
DH
262- A new common (server or client) option, 'db-time-format local;', has
263 been added which prints the local time in /var/db/dhcpd.leases rather
264 than UTC. Thanks to a patch from Ken Lalonde.
265
b500bd4c
DH
266- Some patches to improve DHCP Server startup speed from Andrew Matheson
267 have been incorporated.
268
2426234f
DH
269- Failover pairs now implement 'MAC Affinity' on leases moving from the
270 active to free states. Leases that belonged to the failover secondary
271 are moved to BACKUP state rather than FREE upon exiting EXPIRED state.
272 If lease rebalancing must move leases, it tries first to move leases
273 that belong to the peer in need.
274
275- The server no longer sends POOLREQ messages unless the pool is severely
276 misbalanced in the peer's favor (see 'man dhcpd.conf' for more details).
277
278- Pool rebalance events no longer happen upon successfully allocating a
279 lease. Instead, they happen on a schedule. See 'man dhcpd.conf' for the
280 min-balance and max-balance statements for more information.
281
334bf491
DH
282- The DHCP Relay Agent Information Option / Link Selection Sub-Option
283 is now supported. (See RFC3527 for details).
284
3004bebf
DH
285- A new DDNS related server option, update-conflict-detection, has been
286 added. If this option is enabled, dhcpd will perform normal DHCID
287 conflict resolution (the default). If this option is disabled, it will
288 instead trust the assigned name implicitly (removing any other bindings
289 on that name). This option has not been made available in dhclient.
290
567e8561
DH
291- In those cases where the DHCP software manufactures an IP header (to
292 transmit via bpf, lpf, etc), the IP TTL the software selects has been
293 increased from 16 to 128. This is intended to match Microsoft Windows
294 DHCP Client behaviour, to increase compatibility.
295
a396d25f
DH
296- 'ignore client-updates;' now has behaviour that is different from
297 'deny client-updates;'. The client's request is not truly ignored,
298 rather it is encouraged. Should this value be configured, the server
299 updates DNS as though client-updates were set to 'deny'. That is, it
300 enters into DNS whatever it is configured to do already, provided it is
301 configured to. Then it sends a response to the client that lets the
302 client believe it is performing client updates (which it will), probably
303 for a different name. In essence, this lets the client do as it will,
304 ignoring this aspect of their request.
305
dba5803b
DH
306- Support for compressed 'domain name list' style DHCP option contents, and
307 in particular the domain search option (#119) was added.
308
41e45067 309- The DHCP LEASEQUERY protocol as defined in RFC4388 is now implemented.
6d103865
SK
310 LEASEQUERY lets you query the DHCP server for information about a lease,
311 using either an IP address, MAC address, or client identifier. Thanks
312 to a patch from Justin Haddad.
313
41e45067
DH
314- DHCPD is now RFC2131 section 4.1 compliant (broadcast to all-ones ip and
315 ethernet mac address) on the SCO platform specifically without any strange
316 ifconfig hacks. Many thanks go to the Kroger Co. for donating the
317 hardware and funding the development.
6d103865 318
b543fea9
DH
319- A new common configuration executable statement, execute(), has been
320 added. This permits dhcpd or dhclient to execute a named external
321 program with command line arguments specified from other configuration
322 language. Thanks to a patch written by Mattias Ronnblom, gotten to us
323 via Robin Breathe.
324
b22de500
DH
325- A new dhcp server option 'adaptive-lease-time-threshold' has been added
326 which causes the server to substantially reduce lease-times if there are
327 few (configured percentage) remaining leases. Thanks to a patch submitted
328 from Christof Chen.
329
96bbe8c5
SK
330- Encapsulated option spaces within encapsulated option spaces is now
331 formally supported.
332
c1e6c832
DH
333 Changes since 3.0.5
334
f546c28b
DH
335- Assorted fixes for broken network devices: Packet length is now
336 determined from the IP header length field to finally calculate the
337 UDP payload length, because some NIC drivers return more data than
5a22eb63 338 they actually received.
f546c28b
DH
339
340- UDP packets are now stored in aligned data structures.
341
c1e6c832
DH
342- A logic error in omapi interface code was repaired that might result in
343 incorrectly indicating 'up' state when any flags were set, rather than
23e10d37
DH
344 specifically the INTERFACE_REQUESTED flag. Thanks to a patch from
345 Jochen Voss which got to us via Andrew Pollock at Debian.
c1e6c832 346
75ab3070
DH
347- A reference leak on binding scopes set by ddns updates was repaired.
348
d69fb6a8 349- A memory leak in the minires_nsendsigned() function call was repaired.
23e10d37 350 Effectively, this leaked ~176 bytes per DDNS update.
d69fb6a8 351
02428754
DH
352- In the case where an "L2" DHCP Relay Agent (one that does not set giaddr)
353 was directly attached to the same broadcast domain as the DHCP server,
354 the RFC3046 relay agent information option was not being returned to the
355 relay in the server's replies. This was fixed; the dhcp server no longer
356 requires the giaddr to reply with relay agent information. Note that
357 this also improves compatibility with L2 devices that "intercept" DHCP
358 packets and expect relay agent information even in unicast (renewal)
23e10d37
DH
359 replies. Thanks to a patch from Pekka Silvonen.
360
361- A bug was fixed where the BOOTP header 'sname' field had a value, the
362 copy written to persistent storage was actually the contents of the
363 'file' field.
02428754 364
ecde99a3
DH
365- A bug was fixed where the nwip virtual option space was referencing
366 the fqdn option's virtual option space's option cache.
367
67674ffb
DH
368- Timestamp parsing errors that indicated missing "minutes" fields rather
369 than the actually missing "seconds" fields have been repaired thanks to
370 a patch from Kevin Steves.
371
830ebc4c
DH
372- A grammar error in the dhclient.8 manpage was repaired thanks to a patch
373 from Chris Wagner.
374
c759db75
DH
375- Several spelling typos were repaired, and some cross-references to other
376 relevant documents were included in the manpages, thanks to a patch
377 by Andrew Pollock which got to us via Tomas Pospisek.
378
9aa3f3a5
DH
379- Some bugs were fixed in the 'emergency relay agent options hologram'
380 which is used to retain relay agent option contents from when the
381 client was in INIT or REBIND states. This should solve problems where
382 relay agent options were not echoed from the server, even when giaddr
383 was set.
384
3d0c598a
DH
385- dhclient now closes its descriptor to dhclient.leases prior to executing
386 dhclient-script. Thanks to a patch from Tomas Pospisek.
387
d5b6835f
DH
388- The server's "by client-id" and "by hardware address" hash table lists
389 are now sorted according to the preference to re-allocate that lease to
390 returning clients. This should eliminate pool starvation problems
391 arising when "INIT" clients were given new leases rather than presently
392 active ones.
393
02428754 394 Changes since 3.0.5rc1
0a73b7b6 395
901306d5 396- A bug was repaired in fixes to the dhclient, which sought to run the
0a73b7b6
SK
397 dhclient-script with the 'EXPIRE' state should it receive a NAK in
398 response to a REQUEST. The client now iterates the PREINIT state
399 after the EXPIRE state, so that interfaces that might be configured
400 'down' can be brought back 'up' and initialized.
401
87a08ccc
DH
402- DHCPINFORM handling for clients that properly set ciaddr and come to the
403 server via a relay aget has been repaired.
404
6da113fb
DH
405 Changes since 3.0.4
406
407- A warning that host statements declared within subnet or shared-network
408 scopes are actually global has been added.
409
410- The default minimum lease time (if min-lease-time was not specified)
411 was raised from 0 to 300. 0 is not thought to be sensible, and is
412 known to be damaging.
413
414- Added additional fatal error sanity checks surrounding lease binding
415 state count calculations (free/active counts used for failover pool
416 balancing).
417
dcc557db
DH
418- Some time value size fixes in 3.0.4 brought on from FreeBSD /usr/ports were
419 misapplied to server values rather than client values. The server no longer
420 advertises 8-byte lease-time options when on 64-bit platforms.
421
1b2ab55f
DH
422- A bug where leases not in ACTIVE state would get billed to billed classes
423 (classes with lease limitations) was fixed. Non-active leases OFFERed
424 to clients are no longer billed (but billing is checked before offering).
425
e48891e8
DH
426- The dhcpd.conf.5 manpage was updated in regard to the ddns-domainname
427 configuration option - the default configuration and results should be
428 more clear now.
429
6cbc6629
DH
430- If the dhclient were to receive a DHCPNAK while it was in the RENEW
431 state (and consequently, had an active, 'bound' address and related
432 configuration options), it would fail to 'tear down' this information
433 before proceeding into INIT state. dhclient now iterates the dhclient-
434 script with the 'EXPIRE' action to cause these teardowns prior to entering
1d3bfb17 435 INIT state. Thanks to a patch from Chris Zimmerman.
6cbc6629 436
c5fec5fa
DH
437- The omapi.1 manpage had some formatting errors repaired thanks to a patch
438 from Yoshihiko Sarumaru.
439
33e1cb2b
DH
440- A few lines of code that were failover-specific were moved within
441 #if defined() clauses so that compilation without failover could be
442 made possible.
443
2bddf829
DH
444- The log message emitted when the 'leased-address' value was not available
445 in dhcpd.conf "executable statements" has been updated to be more helpful.
446 Manpage information for this value has also been updated.
447
87578987
DH
448- Abandoned or dissociated (err condition) leases now remove any related
449 dynamic dns bindings. Thanks to a patch from Patrick Schoo.
450
e77c575f
DH
451- Attempting to write a new lease file to replace a corrupt (due to
452 encountering non-retryable errors during writing) lease file should
453 no longer result in an infinite recursion.
454
2178df03
DH
455- Host declaration hardware addresses and client identifiers may only be
456 configured once. dhcpd will now fail to load config files that specify
457 multiple identifiers (previous versions would silently over-ride the
458 value with the later configured value).
459
d5341d9b
SK
460- Several option codes that have been allocated since our last release
461 have been named and documented.
462
463- Option names of the form "unknown-123" have been removed from the in-
464 memory hash tables. In order to support options of these names that
465 may appear in dhclient.leases or similar in previous versions, the
466 parser will now find the new option code definition, or mock up a
467 generic option code definition. This should result in a smooth
468 transition from one name to the other, as the new name is used to
469 write new output.
470
6da113fb
DH
471 Changes since 3.0.4rc1
472
473- The dhcp-options.5 manpage was updated to correct indentation errors
474 thanks to a patch from Jean Delvare.
475
476 Changes since 3.0.4b3
477
478- Some manual pages were clarified pursuant to discussion on the dhcp-server
479 mailing list.
480
88cd8aca
DH
481 Changes since 3.0.4b2
482
483- Null-termination sensing for certain clients that unfortunatley require
484 it in DHCPINFORM processing was repaired.
485
486- The host-name option and a few others were moved from "X" format to "t"
487 format to be compatible with new NULL handling functions.
488
489- DHCPINFORM processing is a little more careful about return addressing
490 its responses, or if responding via a relay. The INFORM related
491 messages also log the 'effective client ip address' rather than the
492 client's supplied ciaddr (since some clients produce null ciaddrs).
493
494- The server was inappropriately sending leases to the RESET state in the
495 event that multiple active leases were found to match a singly-identified
496 client. This was changed to RELEASED (by accepting a different, ACTIVE
497 binding, the client is implicitly releasing its lease). This repairs a
498 bug wherein secondary servers in failover pairs detecting this condition
499 move leases to RESET, and primaries refuse to accept that state
500 transition (properly).
501
502- The memset-after-dmalloc() changes made in 3.0.4b1 have been backed out.
503
504 Changes since 3.0.4b1
505
506- Command line parsing in omshell was repaired - it no longer closes
507 STDIN after reading one line.
508
509- The resolver library no longer closes the /etc/resolv.conf file
510 descriptor it opened twice.
511
512- Changes to trailing NULL removal in 't' option-atoms has been rethought,
513 it now includes 'd' (domain name) types, and tries hard not to rewind an
514 option beyond the start of the text field it is un-terminating.
515
516 Changes since 3.0.3
517
518- A DDNS update handling function was misusing the DNS error codes, rather
519 than the internal generic result enumeration. The result is a confusing
520 syslog line, logging the wrong condition.
521
522- The DHCP Server was not checking pool balance in the case where it brought
523 a non-ACTIVE lease out of storage for a client that was returning to use
524 a lease it once had long ago, and had since expired.
525
526- Failover peers no longer bother to look for free leases to allocate when
527 they already found the client's ACTIVE lease. DISCOVERs are load balanced
98bd7ca0 528 whether freely-allocated or not, unless the server doubts the peer has
88cd8aca
DH
529 leases to allocate.
530
531- Fixed a bug in dhcrelay agent addition code that suppressed trailing
532 PAD options - it was suppressing only one trailng PAD option, rather
533 than the entire block of them.
534
3a16098f
DH
535! Fixed some unlikely overlapping-region memcpy() bugs in dhcrelay agent
536 option addition and stripping code. Added a few sanity checks. Although
537 highly improbable, due to requiring the reception of a DHCP datagram well
538 in excess of all known to be used physical MTU limitations, it is possible
539 this may have been used in a stack overflow security vulnerability. Thanks
540 to a patch from infamous42md.
541
542! Added some sanity checks to OMAPI connection/authentication code.
543 Although highly improbable, due to having to deliver in excess of 2^32
544 bytes of data via the OMAPI channel, not to mention requiring dhcpd to
545 be able to malloc() a memory region 2^32 bytes in size, it was possible
546 this might have resulted in a heap overflow security vulnerability.
547 Thanks to a patch from infamous42md.
88cd8aca
DH
548
549- dmalloc() memset()'s the non-debug (data) portion of the allocated
550 memory to zero. Code that memset()'s the result returned by dmalloc() to
551 zero is redundant. These redundancies were removed.
552
553- Some type declaration corrections to u_int16_t were made in common/tr.c
554 (Token Ring support) thanks to a patch from Jason Vas Dias at RedHat.
555
556- A failover bug that was allowing leases that EXPIRED or were RELEASED
557 where tsfp and tstp are identical timestamps to languish in these
558 transitional states has been repaired. As a side effect, lease
559 databases should be kept more consistent overall, not just for these
560 transitional states.
561
562- If the lease db is deleted out from under the daemon, and it moves to rewrite
563 the db, it will go ahead with the operation and move the new db into place
564 once it detects the old db does not exist.
565
566- dhclient now ignores IRDA, SIT, and IEEE1394 network interfaces, as it
567 is either nonsensical or (in the case of IEEE1394) is not known to support
568 these interfaces. Thanks to Marius Gedminas and Andrew Pollock of Debian.
569
570- Some previously undocumented reasons for dhclient-script invoking has
571 been doucmented in the dhclient-script.8 manpage.
572
573- Failover potential expiry calculations (TSTP) have been corrected. Results
574 should be substantially more consistent, and proper given the constraints.
575
576- Adjusted lease state validation checks in potential-conflict, to
577 account for possible clock skew similarly to normal state, and several
578 previously illegal transitions were made legal (ex: active->released).
579
580- An impossible sanity check was removed from omapi/buffer.c, thanks to a
581 patch from 'infamous42md'.
582
583- An OMAPI host/network byte order problem in lease time values has been
584 repaired.
585
586- Several minor bugs, largely relating to treating 8-byte time values as
587 4-byte entities, have been repaired after careful review of the FreeBSD
588 ports collection's patch set. Thanks to the nameless entities who have
589 contributed to the FreeBSD ports.
590
591- When writing a trace file, the file is now created with permissions 0600,
592 to help administrators avoid accidentally publicising sensitive config
593 data.
594
595- The calculation of the maximum size of DHCP packets no longer includes
596 Ethernet framing overhead. The result is that the 'Maximum Message
597 Size' option advertised by clients, or the default value 576, is no
598 longer reduced by 14 bytes, and instead directly reflects the IP level
599 MTU (and the default, minimum allowed IP MTU of 576).
600
601- The special status of RELEASED/EXPIRED/RESET leases when a server
602 is operating in partner-down was fixed. It no longer requires a
603 lease be twice the MCLT beyond STOS to 'reallocate', and the expiry
604 event to turn these into FREE leases without peer acknowledgement
605 (after STOS+MCLT) has been repaired.
606
607- Compilation on older Solaris systems (lacking /usr/include/sys/int_types.h)
608 has been repaired.
609
610- "append"ing a string onto the end of a "t" type option (such as the
611 domain-name field) that had been improperly NULL-terminated by the
612 DHCP server will no longer result in a truncated string containing
613 only the option from the server, and not the expected appended value.
614 Thanks to a patch from Jason Vas Dias at RedHat.
615
616- File handlers on configuration state (config files and lease dbs) should
98bd7ca0 617 be treated consistently, regardless of whether TRACING is defined or not.
88cd8aca
DH
618
619- The linux build environment has had some minor improvements - better
620 sensing of 64-bit pointer sizes (only used for establishing an icmp_id),
621 and corrections to #if operators regarding LINUX_MAJOR should it ever
622 move to 3.[01].x.
623
624- The server now tries harder to survive the condition where it is unable
625 to open a new lease file to rewrite the lease state database.
626
c75473d8
DH
627 Changes since 3.0.3b3
628
629- dhclient.conf documentation for interface {} was updated to reflect recent
630 discussion on the dhcp-hackers mailing list.
631
632- In response to reports that the software does not compile on GCC 4.0.0,
633 -Werror was removed from Makefile.conf for all platforms that used it.
634 We will address the true problem in a future release; this is a temporary
635 workaround.
636
637 Changes since 3.0.3b2
638
639- An error in code changes introduced in 3.0.3b2 was corrected, which caused
640 static BOOTP clients to receive random addresses.
641
642 Changes since 3.0.3b1
643
644- A bug was fixed in BOOTPREQUEST handling code wherein stale references to
645 host records would be left behind on leases that were not allocated to the
646 client currently booting (eg in the case where the host was denied booting).
647
648- The dhcpd.conf.5 manpage was updated to be more clear in regards to
649 multiple host declarations (thanks to Vincent McIntyre). 'Interim' style
650 dynamic updates were also retouched.
651
98311e4b
DH
652 Changes since 3.0.2
653
654- A bug was fixed where a server might load balance a DHCP REQUEST to its
655 peer after already choosing not to load balance the preceeding DISCOVER.
656 The peer cannot allocate the originating server's lease.
657
658- In the case where a secondary server lost its stable storage while the
659 primary was still in communications-interrupted, and came back online,
660 the lease databases would not be fully transferred to the secondary.
661 This was due to the secondary errantly sending an extra UPDREQ message
662 when the primary made its state transition to PARTNER-DOWN known.
663
664- The package will now compile cleanly in gcc 3.3 and 3.4. As a side effect,
665 lease structures will be 9 bytes smaller on all platforms. Thanks to
666 Jason Vas Dias at Redhat.
667
668- Interface discovery code in DISCOVER_UNCONFIGURED mode is now
669 properly restricted to only detecting broadcast interfaces. Thanks
670 to a patch from Jason Vas Dias at RedHat.
671
672- decode_udp_ip_header was changed so that the IP address was copied out
673 to a variable, rather than referenced by a pointer. This enforces 4-byte
674 alignment of the 32-bit IP address value. Thanks to a patch from Dr.
675 Peter Poeml.
676
677- An incorrect log message was corrected thanks to a patch from
678 Dr. Peter Poeml.
679
680- A bug in DDNS was repaired, where if the server's first DDNS action was
681 a DDNS removal rather than a DDNS update, the resolver library's
682 retransmit timer and retry timer was set to the default, implying a
683 15 second timeout interval. Which is a little excessive in a synchronous,
684 single-threaded system. In all cases, ISC DHCP should now hold fast to
685 a 1-second timeout, trying only once.
686
687- The siaddr field was being improperly set to the server-identifier when
688 responding to DHCP messages. RFC2131 clarified the siaddr field as
689 meaning the 'next server in the bootstrap process', eg a tftp server.
690 The siaddr field is now left zeroed unless next-server is configured.
691
692- mockup_lease() could have returned in an error condition (or in the
693 condition where no fixed-address was found matching the shared
694 network) with stale references to a host record. This is probably not
695 a memory leak since host records generally never die anyway.
696
697- A bug was repaired where failover servers would let stale client identifiers
698 persist on leases that were reallocated to new clients not sending an id.
699
700- Binding scopes ("set var = value;") are now removed from leases allocated
701 by failover peers if the lease had expired. This should help reduce the
702 number of stale binding scopes on leases.
703
704- A small memory leak was closed involving client identifiers larger than
705 7 bytes, and failover.
706
707- Configuring a subnet in dhcpd.conf with a subnet mask of 32 bits might
708 cause an internal function to overflow heap. Thanks to Jason Vas Dias
709 at Redhat.
710
711- Some inconsistencies in treating numbers that the lexer parsed as 'NUMBER'
712 or 'NUMBER_OR_NAME' was repaired. Hexadecimal parsing is affected, and
713 should work better.
714
715- In several cases, parse warnings were being issued before the lexical
716 token had been advanced to the token whose value was causing an error...
717 causing parse warnings to claim the problem is on the wrong token.
718
719- Host declarations matching on client identifier for dynamic leases will
720 no longer match fixed-address host declarations (this is now identical
721 to behaviour for host records matching on hardware address).
722
723 Changes since 3.0.2rc3
724
725- A previously undocumented configuration directive, 'local-address',
726 was documented in the dhcpd.conf manpage.
727
728 Changes since 3.0.2rc2
729
730- Two varaibles introduced in 3.0.2b1 were used without being initialized
731 in the case where neither the FILE nor SNAME fields were available for
732 overloading. This was repaired.
733
734- A heretofore believed to be impossible corner case of the option
735 overloading implementation turned out to be possible ("Unable to sort
736 overloaded options after 10 tries."). The implementation was reworked
737 to consider the case of an option so large it would require more than
738 three chunks to fit.
739
740- Many other instances of variables being used without being initialized
741 were repaired.
742
743- An uninitialized variable in omapi_io_destroy() led to the discovery
744 that this function may result in orphaned pointers (and hence, a memory
745 leak).
746
747 Changes since 3.0.2rc1
748
749- allocate_lease() was rewritten to repair a bug in which the server would
750 try to allocate an ABANDONED lease when FREE leases were available.
751
752 Changes since 3.0.2b1
753
754- Some dhcp-eval.5 manpage formatting was repaired.
755
756 Changes since 3.0.1
757
758- A bug was fixed in the server's 'option overloading' implementation,
759 where options loaded into the 'file' and 'sname' packet fields were
760 not aligned precisely as rfc2131 dictates.
761
762- The FreeBSD client script was changed to support the case where a domain
763 name was not provided by the server.
764
765- A memory leak in 'omshell' per each command line parsed was
766 repaired, thanks to a patch from Jarkko Torppa.
767
768- Log functions writing to stderr were adjusted to use the STDERR_FILENO
769 system definition rather than '2'. This is a no-op for 90% of platforms.
770
771- One call to trace_write_packet_iov() counted the number of io vectors
772 incorrectly, causing inconsistent tracefiles. This was fixed.
773
774- Some expression parse failure memory leaks were closed.
775
776- A host byte order problem in tracefiles was repaired.
777
778- Pools configured in DHCPD for failover possessing permission lists that
779 previously were assumed to not include dyanmic bootp clients are now
780 a little more pessimistic. The result is, dhcpd will nag you about just
781 about most pools that possess a 'allow' statement with no 'deny' that
782 would definitely match a dynamic bootp client.
783
784- The 'ddns-update-style' configuration warning bit now insists that
785 the configuration be globally scoped.
786
787- Two memory leaks in dhclient were closed thanks to a patch from Felix
788 Farkas.
789
790- Some minor but excellently pedantic documentation errors were fixed
791 thanks to a patch from Thomas Klausner.
792
793- Bugs in operator precedence in executable statements have been repaired
794 once again. More legal syntaxes should be parsed legally.
795
796- Failing to initialize a tracefile for any reason if a tracefile was
797 specified is now a fatal error. Thanks to a patch from Albert Herranz.
798
799- Corrected a bug in which the number of leases transferred as calculated
800 by the failover primary and sent to peers in POOLRESP responses may be
801 incorrect. This value is not believed to be used by other failover
802 implementations, excepting perhaps as logged information.
803
804- Corrected a bug in which 'dhcp_failover_send_poolresp()' was in fact
805 sending POOLREQ messages instead of POOLRESP mesasges. This message
806 was essentially ignored since failover secondaries effectively do not
807 respond to POOLREQ messages.
808
809- Type definitions for various bitwidths of integers in the sunos5-5
810 build of ISC DHCP have been fixed. It should compile and run more
811 easily when built in 64-bit for this platform.
812
813- "allow known-clients;" is now a legal syntax, to avoid confusion.
814
815- If one dhcp server chooses to 'load balance' a request to its failover
816 peer, it first checks to see if it believes said peer has a free
817 lease to allocate before ignoring the DISCOVER.
818
819- log() was logging a work buffer, rather than the value returned by
820 executing the statements configured by the user. In some cases,
821 the work buffer and the intended results were the same. In some other
822 cases, they were not. This was fixed thanks to a patch from Gunnar
823 Fjone and directconnect.no.
824
825- Compiler warnings for some string type conversions was fixed, thanks
826 to Andreas Gustafsson.
827
828- The netbsd build environments were simplified to one, in which
829 -Wconversion is not used, thanks to Andreas Gustafsson.
830
831- How randomness in the backoff-cutoff dhclient configuration variable
832 is implemented was better documented in the manpage, and the behaviour
833 of dhclient in REQUEST timeout handling was changed to match that of
834 DISCOVER timeout handling.
835
836- Omapi was hardened against clients that pass in null values, thanks
837 to a patch from Mark Jason Dominus.
838
839- A bug was fixed in dhclient that kept it from doing client-side
840 ddns updates. Thanks to a patch from Andreas Gustafsson, which
841 underwent some modification after review by Jason Vas Dias.
842
843- Failover implementations disconnected due to the network between
844 them (rather than one of the two shutting down) will now try to
845 re-establish the failover connection every 5 seconds, rather than
846 to simply try once and give up until one of them is restarted.
847 Thanks to a patch from Ulf Ekberg from Infoblox, and field testing
848 by Greger V. Teigre which led to an enhancement to it.
849
850- A problem that kept DHCP Failover secondaries from tearing down
851 ddns records was repaired. Thanks to a patch from Ulf Ekberg from
852 Infoblox.
853
854- 64bit pointer sizes are detected properly on FreeBSD now.
855
856- A bug was repaired where the DHCP server would leave stale references
857 to host records on leases it once thought about offering to certain
858 clients. The result would be to apply host and 'known' scopes to the
859 wrong clients (possibly denying booting). NOTE: The 'mis-host' patch
860 that was being circulated as a workaround is not the way this bug was
861 fixed. If you were a victim of this bug in 3.0.1, you are cautioned
862 to proceed carefully and see if it fixes your problem.
863
864- A bug was repaired in the server's DHCPINFORM handling, where it
865 tried to divine the client's address from the source packet and
866 would get it wrong. Thanks to Anshuman Singh Rawat.
867
868- A log message was introduced to help illuminate the case where the
869 server was unable to find a lease to assign to any BOOTP client.
870 Thanks to Daniel Baker.
871
872- A minor dhcpd.conf.5 manpage error was fixed.
873
874 Changes since 3.0.1rc14
875
876- The global variable 'cur_time' was centralized and is now uniformly of a
877 type #defined in system-dependent headers. It had previously been defined
878 in one of many places as a 32-bit value, and this causes mayhem on 64-bit
879 big endian systems. It probably wasn't too healthy on little endian
880 systems either.
881
882- A printf format string error introduced in rc14 was repaired.
883
884- AIX system-dependent header file was altered to only define NO_SNPRINTF
885 if the condition used to #ifdef in vsnprintf in AIX' header files
886 is false.
887
888- The Alpha/OSF system-dependent header file was altered to define
889 NO_SNPRINTF on OS revisions older than 4.0G.
890
891- omapip/test.c had string.h added to its includes.
892
893 Changes since 3.0.1rc13
894
895! CAN-2004-0460 - CERT VU#317350: Five stack overflow exploits were closed
896 in logging messages with excessively long hostnames provided by the
897 clients. It is highly probable that these could have been used by
898 attackers to gain arbitrary root access on systems using ISC DHCP 3.0.1
899 release candidates 12 or 13. Special thanks to Gregory Duchemin for
900 both finding and solving the problem.
901
902! CAN-2004-0461 - CERT VU#654390: Once the above was closed, an opening
903 in log_*() functions was evidented, on some specific platforms where
904 vsnprintf() was not believed to be available and calls were wrapped to
905 sprintf() instead. Again, credit goes to Gregory Duchemin for finding
906 the problem. Calls to snprintf() are now linked to a distribution-local
907 snprintf implementation, only in those cases where the architecture is
908 not known to provide one (see includes/cf/[arch].h). If you experience
909 linking problems with snprintf/vsnprintf or 'isc_print_' functions, this
910 is where to look. This vulnerability did not exist in any previously
911 published version of ISC DHCP.
912
913- Compilation on hpux 11.11 was repaired.
914
915- 'The cross-compile bug fix' was backed out.
916
917 Changes since 3.0.1rc12
918
919- Fixed a bug in omapi lease lookup function, to form the hardware
920 address for the hash lookup correctly, thanks to a patch from
921 Richard Hirst.
922
923- Fixed a bug where dhcrelay was sending relayed responses back to the
924 broadcast address, but with the source's unicast mac address. Should
925 now conform to rfc2131 section 4.1.
926
927- Cross-compile bug fix; use $(AR) instead of ar. Thanks to Morten Brorup.
928
929- Fixed a crash bug in dhclient where dhcpd servers that do not provide
930 renewal times results in an FPE. As a side effect, dhclient can now
931 properly handle 0xFFFFFFFF (-1) expiry times supplied by servers. Thanks
932 to a patch from Burt Silverman.
933
934- The 'ping timeout' debugs from rc12 were removed to -DDEBUG only,
935 and reformatted to correct a compilation error on solaris platforms.
936
937- A patch was applied which fixes a case where leases read from the
938 leases database do not properly over-ride previously read leases.
939
940- dhcpctl.3 manpage was tweaked.
941
942 Changes since 3.0.1rc11
943
944- A patch from Steve Campbell was applied with minor modifications to
945 permit reverse dns PTR record updates with values containing spaces.
946
947- A patch from Florian Lohoff was applied with some modifications to
948 dhcrelay. It now discards packets whose hop count exceeds 10 by default,
949 and a command-line option (-c) can be used to set this threshold.
950
951- A failover bug relating to identifying peers by name length instead of
952 by name was fixed.
953
954- Delcaring failover configs within shared-network statements should no
955 longer result in error.
956
957- The -nw command line option to dhclient now works.
958
959- Thanks to a patch from Michael Richardson:
960 - Some problems with long option processing have been fixed.
961 - Some fixes to minires so that updates of KEY records will work.
962
963- contrib/ms2isc was updated by Shu-Min Chang of the Intel Corporation.
964 see contrib/ms2isc/readme.txt for revision notes.
965
966- Dhclient no longer uses shell commands to kill another instance of
967 itself, it sends the signal directly. Thanks to a patch from Martin
968 Blapp.
969
970- The FreeBSD dhclient-script was changed so that a failure to write to
971 /etc/resolv.conf does not prematurely end the script. This keeps dhclient
972 from looping infinitely when this is the case. Thanks to a patch from
973 Martin Blapp.
974
975- A patch from Bill Stephens was applied which resolves a problem with lease
976 expiry times in failover configurations.
977
978- A memory leak in configuration parsing was closed thanks to a patch from
979 Steve G.
980
981- The function which discovers interfaces will now skip non-broadcast or
982 point-to-point interfaces, thanks to a patch from David Brownlee.
983
984- Options not yet known by the dhcpd or dhclient have had their names
985 changed such that they do not contain # symbols, in case they should ever
986 appear in a lease file. An option that might have been named "#144" is
987 now "unknown-144".
988
989- Another patch from Bill Stephens which allows the ping-check timeout to
990 be configured as 'ping-timeout'. Defaults to 1.
991
992 Changes since 3.0.1rc10
993
994- Potential buffer overflows in minires repaired.
995
996- A change to the linux client script to use /bin/bash, since /bin/sh may
997 not be bash.
998
999- Some missing va_end cleanups thanks to a patch from Thomas Klausner.
1000
1001- A correction of boolean parsing syntax validation - some illegal syntaxes
1002 that worked before are now detected and produce errs, some legal syntaxes
1003 that errored before will now work properly.
1004
1005- Some search-and-replace errors that caused some options to change their
1006 names was repaired.
1007
1008- Shu-min Chang of the Intel corporation has contributed a perl script and
1009 module that converts the MS NT4 DHCP configuration to a ISC DHCP3
1010 configuration file.
1011
1012- Applied the remainder of the dhcpctl memory leak patch provided by Bill
1013 Squier at ReefEdge, Inc. (groo@reefedge.com).
1014
1015- Missing non-optional failover peer configurations will now result in a soft
1016 error rather than a null dereference.
1017
1018 Changes since 3.0.1rc9
1019
1020- A format string was corrected to fix compiler warnings.
1021
1022- A number of spelling corrections were made in the man pages.
1023
1024- The dhclient.conf.5 man page was changed to refer to do-forward-updates
1025 rather than a configuration option that doesn't exist.
1026
1027- A FreeBSD-specific bug in the interface removal handling was fixed.
1028
1029- A Linux-specific Token Ring detection problem was fixed.
1030
1031- Hashes removed from as-yet-unknown agent options, having those options
1032 appear in reality before we know about them will no longer produce
1033 self-corrupting lease databases.
1034
1035- dhclient will use the proper port numbers now when using the -g option.
1036
1037- A order-of-operations bug with 2 match clauses in 1 class statement is
1038 fixed thanks to a patch from Andrew Matheson.
1039
1040- Compilation problems on Solaris were fixed.
1041
1042- Compilation problems when built with DEBUG or DEBUG_PACKET were repaired.
1043
1044- A fix to the dhcp ack process which makes certain group options will be
1045 included in the first DHCPOFFER message was made thanks to a patch from
1046 Ling Gou.
1047
1048- A few memory leaks were repaired thanks to patches from Bill Squier at
1049 ReefEdge, Inc. (groo@reefedge.com).
1050
1051- A fix for shared-networks that sometimes give clients options for the
1052 wrong subnets (in particular, 'option routers') was applied, thanks to
1053 Ted Lemon for the patch.
1054
1055- Omshell's handling of dotted octets as values was changed such that dots
1056 one after the other produce zero values in the integer string.
1057
1058 Changes since 3.0.1rc8
1059
1060- Fix a format string vulnerability in the server that could lead to a
1061 remote root compromise (discovered by NGSEC Research Team, www.ngsec.com).
1062
1063- Add additional support for NetBSD/sparc64.
1064
1065- Fix a bug in the command-line parsing of the client. Also, resolve
1066 a memory leak.
1067
1068- Add better support for shells other than bash in the Linux client
1069 script.
1070
1071- Various build fixes for modern versions of FreeBSD and Linux.
1072
1073- Fix a bad bounds check when printing binding state names.
1074
1075- Clarify documentation about fixed-address and multiple addresses.
1076
1077- Fix a typo in the authoritative error message.
1078
1079- Make a log entry when we can't write a billing class.
1080
1081- Use conversion targets that are the right size on all architectures.
1082
1083- Increment the hop count when relaying.
1084
1085- Log a message when lease state is changed through OMAPI.
1086
1087- Don't rerun the shared_network when evaluating the pool.
1088
1089- Fix a reversed test in the parser.
1090
1091- Change the type of rbuf_max.
1092
1093- Make FTS_LAST a manifest constant to quiet warnings.
1094
1095 Changes since 3.0.1rc7
1096
1097- Fix two compiler warnings that are generated when compiling on Solaris
1098 with gcc. These stop the build, even though they weren't actually
1099 errors, because we prefer that our builds generate no warnings.
1100
1101 Changes since 3.0.1rc6
1102
1103- Don't allow a lease that's in the EXPIRED, RELEASED or RESET state
1104 to be renewed.
1105
1106- Implement lease stealing for cases where the primary has fewer leases
1107 than the secondary, as called for by the standard.
1108
1109- Add a fudge factor to the lease expiry acceptance code, (suggested
1110 by Kevin Miller of CMU).
1111
1112- Fix a bug in permit_list_match that made it much too willing to say
1113 that two permit lists matched.
1114
1115- Unless DEBUG_DNS_UPDATES is defined, print more user-friendly (and
1116 also more compact) messages about DNS updates.
1117
1118- Fix a bug in generating wire-format domain names for the FQDN option.
1119
1120- Fix a bug where the FQDN option would not be returned if the client
1121 requested it, contrary to the standard.
1122
1123- On Darwin, use the FreeBSD DHCP client script.
1124
1125- On NetBSD/sparc, don't check for casting warnings.
1126
1127- Add a flag in the DHCP client to disable updating the client's A
1128 record when sending an FQDN option indicating that the client is
1129 going to update its A record.
1130
1131- In the client, don't attempt a DNS update until one second after
1132 configuring the new IP address, and if the update times out, keep
1133 trying until a response, positive or negative, is received from the
1134 DNS server.
1135
1136- Fix an uninitialized memory bug in the DHCP client.
1137
1138- Apply some FreeBSD-specific bug fixes suggested by Murray Stokely.
1139
1140- Fix a bug in ns_parserr(), where it was returning the wrong sort
1141 of result code in some cases (suggested by Ben Harris of the
1142 NetBSD project).
1143
1144- Fix a bug in is_identifier(), where it was checking against EOF
1145 instead of the END_OF_FILE token (also suggested by Ben Harris).
1146
1147- Fix a bug where if an option universe contained no options, the
1148 DHCP server could dump core (Walter Steiner).
1149
1150- Fix a bug in the handling of encapsulated options.
1151
1152- Fix a bug that prevented NWIP suboptions from being processed.
1153
1154- Delete the FTS_BOOTP and FTS_RESERVED states and implement them
1155 as modifier flags to the FTS_ACTIVE state, as called for in the
1156 failover protocol standard.
1157
1158- Fix bugs in the pool merging code that resulted in references and
1159 dereferences of null pointers. This bug had no impact unless the
1160 POINTER_DEBUG flag was defined.
1161
1162- In the server, added a do-forward-updates flag that can be used to
1163 disable forward updates in all cases, so that sites that want the
1164 clients to take sole responsibility for updating their A record can
1165 do so.
1166
1167- Make it possible to disable optimization of PTR record updates.
1168
1169 Changes since 3.0.1rc5
1170
1171- Include some new documentation and changes provided by Karl Auer.
1172
1173- Add a workaround for some Lexmark printers that send a double-NUL-
1174 terminated host-name option, which would break DNS updates.
1175
1176- Fix an off-by-one error in the MAC-address checking code for
1177 DHCPRELEASE that was added in 3.0.1rc5.
1178
1179- Fix a bug where client-specific information was not being discarded
1180 from the lease when it expired or was released, resulting in
1181 problems if the lease was reallocated to a different client.
1182
1183- If more than one allocation pool is specified that has the same set
1184 of constraints as another allocation pool on the same shared
1185 network, merge the two pools.
1186
1187- Don't print an error in fallback_discard, since this just causes
1188 confusion and does not appear to be helping to encourage anyone to
1189 fix this bug.
1190
1191 Changes since 3.0.1rc4
1192
1193- Fix a bug that would cause the DHCP server to spin if asked to parse
1194 a certain kind of incorrect statement.
1195
1196- Fix a related bug that would prevent an error from being reported in
1197 the same case.
1198
1199- Additional documentation.
1200
1201- Make sure that the hardware address matches the lease when
1202 processing a DHCPRELEASE message.
1203
1204 Changes since 3.0.1rc3
1205
1206- A minor bug fix in the arguments to a logging function call.
1207- Documentation update for dhcpd.conf.
1208
1209 Changes since 3.0.1rc2
1210
1211- Allow the primary to send a POOLREQ message. This isn't what the current
1212 failover draft says to do, so we may have to back it out if I can't get the
1213 authors to relent, but the scheme for balancing that's specified in the
1214 current draft seems needlessly hairy, so I'm floating a trial balloon.
1215 The rc1 code did not implement the method described in the draft either.
1216
1217 Changes since 3.0.1rc1
1218
1219- Treat NXDOMAIN and NXRRSET as success when we are trying to delete a
1220 domain or RRSET. This allows the DHCP server to forget about a name
1221 it added to the DNS once it's been removed, even if the DHCP server
1222 wasn't the one that removed it.
1223
1224- Install defaults for failover maximum outstanding updates and maximum
1225 silent time. This prevents problems that might occur if these values
1226 were not configured.
1227
1228- Don't do DDNS deletes if ddns-update-style is none.
1229
1230- Return relay agent information options in DHCPNAK. This prevents DHCPNAK
1231 messages from being dropped when the relay agent information option contains
1232 routing information.
1233
1234- Fix a problem where coming up in recover wouldn't result in an update
1235 request being sent.
1236
1237- Add some more chatty messages when we start a recovery update and when it's
1238 done.
1239
1240- Fix a possible problem where some state might have been left around
1241 after the peer lost contact and regained contact about how many updates
1242 were pending.
1243
1244- Don't nix a lease update because of a lease conflict. This test has
1245 never (as far as I know) prevented a mistake, and it appears to cause
1246 problems with failover.
1247
1248- Add support in rc history code for keeping a selective history, rather
1249 than a history of all references and dereferences. This code is only used
1250 when extensive additional debugging is enabled.
1251
1252 Changes since 3.0
1253
1254- Make allocators for hash tables. As a side effect, this fixes a memory
1255 smash in the subclass allocation code.
1256
1257- Fix a small bug in omshell where if you try to close an object when
1258 no object is open, it dumps core.
1259
1260- Fix an obscure coredump that could occur on shutdown.
1261
1262- Fix a bug in the recording of host declaration rubouts in the lease file.
1263
1264- Fix two potential spins in the host deletion code.
1265
1266- Fix a core dump that would happen if an application tried to update
1267 a host object attribute with a null value.
1268
1269 Changes since 3.0 Release Candidate 12
1270
1271- Fix a memory leak in the evaluation code.
1272
1273- Fix an obscure core dump.
1274
1275- Print a couple of new warnings when parsing the configuration file
1276 when crucial information is left out.
1277
1278- Log "no free leases" as an error.
1279
1280- Documentation updates.
1281
1282 Changes since 3.0 Release Candidate 11
1283
1284- Always return a subnet selection option if one is sent.
1285
1286- Fix a warning that was being printed because an automatic data
1287 structure wasn't zeroed.
1288
1289- Fix some failover state transitions that were being handled
1290 incorrectly.
1291
1292- When supersede_lease is called on a lease whose end time has already
1293 expired, but for which a state transition has not yet been done, do
1294 a state transition. This fixes the case where if the secondary
1295 allocated a lease to a client and the lease "expired" while the
1296 secondary was in partner-down, no expiry event would actually
1297 happen, so the lease would remain active until the primary was
1298 restarted.
1299
1300 Changes since 3.0 Release Candidate 10
1301
1302- Fix a bug that was preventing released leases from changing state
1303 in failover-enabled pools.
1304
1305- Fix a core dump in the client identifier finder code (for host
1306 declarations).
1307
1308- Finish fixing a bug where bogus data would sometimes get logged to
1309 the dhclient.leases file because it was opened as descriptor 2.
1310
1311- Fix the Linux dhclient-script according to suggestions made by
1312 several people on the dhcp-client mailing list.
1313
1314- Log successful DNS updates at LOG_INFO, not LOG_ERROR.
1315
1316- Print an error message and refuse to run if a failover peer is
1317 defined but not referenced by any pools.
1318
1319- Correct a confusing error message in failover.
1320
eaf0b302
TL
1321 Changes since 3.0 Release Candidate 9
1322
1323- Fix a bug in lease allocation for Dynamic BOOTP clients.
1324
0db87765
TL
1325 Changes since 3.0 Release Candidate 8 Patchlevel 2
1326
1327- Fix a bug that prevented update-static-leases from working.
1328
1329- Document failover-state OMAPI object.
1330
1331- Fix a compilation error on SunOS 4.
1332
d758ad8c
TL
1333 Changes since 3.0 Release Candidate 8 Patchlevel 1
1334
1335- Fix a parsing bug that broke dns updates (both interim and ad-hoc).
1336 This was introduced in rc8pl1 as an unintended result of the memory
1337 leakage fixes that were in pl1.
1338
1339- Fix a long-standing bug where the server would record that an update
1340 had been done for a client with no name, even though no update had
1341 been done, and then when the client's lease expired the deletion of
1342 that nonexistant record would time out because the name was the null
1343 string.
1344
1345- Clean up the omshell, dhcpctl and omapi man pages a bit.
1346
d758ad8c
TL
1347 Changes since 3.0 Release Candidate 8
1348
1349- Fix a bug that could cause the DHCP server to spin if
1350 one-lease-per-client was enabled.
1351
1352- Fix a bug that was causing core dumps on BSD/os in the presence of
1353 malformed packets.
1354
1355- In partner-down state, don't restrict lease lengths to MCLT.
1356
1357- On the failover secondary, record the MCLT received from the primary
1358 so that if we come up without a connection to the primary we don't
1359 wind up giving out zero-length leases.
1360
1361- Fix some compilation problems on BSD/os.
1362
1363- Fix a bunch of memory leaks.
1364
1365- Fix a couple of bugs in the option printer.
1366
1367- Fix an obscure error reporting bug in the dns update code, and also
1368 make the message clearer when a key algorithm isn't supported.
1369
1370- Fix a bug in the tracing code that prevented trace runs that used
1371 tcp connections from being played back.
1372
1373- Add some additional debugging capability for catching memory leaks
1374 on exit.
1375
1376- Make the client release the lease correctly on shutdown.
1377
1378- Add some configurability to the build system.
1379
1380- Install omshell manual page in man1, not man8.
1381
1382- Craig Gwydir sent in a patch that fixes a long-standing bug in the
1383 DHCP client that could cause core dumps, but that for some reason
1384 hadn't been noticed until now.
1385
1386 Changes since 3.0 Release Candidate 7
1387
1388- Fix a bug in failover where we weren't sending updates after a
1389 transition from communications-interrupted to normal.
1390
1391- Handle expired/released/reset -> free transition according to the
1392 protocol specification (this works - the other way not only wasn't
1393 conformant, but also didn't work).
1394
1395- Add a control object in both client and server that allows either
1396 daemon to be shut down cleanly.
1397
1398- When writing a lease, if we run out of disk space, shut down the
1399 output file and insist on writing a new one before proceeding.
1400
1401- In the server, if the OMAPI listener port is occupied, keep trying
1402 to get it, rather than simply giving up and exiting.
1403
1404- Support fetching variables from leases and also updating and adding
1405 variables to leases via OMAPI.
1406
1407- If two failover peers have wildly different clocks, refuse to start
1408 doing failover.
1409
1410- Fix a bug in the DNS update code that could cause core dumps when
1411 running on alpha processors.
1412
1413- Fixed a bug in ddns updates for static lease entries, thanks to a
1414 patch from Andrey M Linkevitch.
1415
1416- Add support for Darwin/MacOS X
1417
1418- Install omshell (including new documentation).
1419
1420- Support DNS updates in the client (this is a very obscure feature
1421 that most DHCP client users probably will not be able to use).
1422
1423- Somewhat cleaner status logging in the client.
1424
1425- Make OMAPI key naming syntax compatible with the way keys are
1426 actually named (key names are domain names).
1427
1428- Fix a bug in the lease file writer.
1429
1430- Install DHCP ISC headers in a different place than BIND 9 ISC
1431 headers, to avoid causing trouble in BIND 9 builds.
1432
1433- Don't send updates for attributes on an object when the attributes
1434 haven't changed. Support deleting attributes on remote objects.
1435
1436- Fix a number of bugs in omshell, and add the unset and refresh
1437 statements.
1438
1439- Handle disconnects in OMAPI a little bit more intelligently (so that
1440 the caller gets ECONNRESET instead of EINVAL).
1441
1442- Fix a bunch of bugs in the handling of clients that have existing
1443 leases when the try to renew their leases while failover is
1444 operating.
1445
eaf0b302
TL
1446 Changes since 3.0 Release Candidate 6
1447
1448- Fix a core dump that could happen when processing a DHCPREQUEST from
1449 a client that had a host declaration that contained both a
1450 fixed-address declaration and a dhcp-client-identifier option
1451 declaration, if the client identifier was longer than nine bytes.
1452
1453- Fix a memory leak that could happen in certain obscure cases when
1454 using omapi to manipulate leases.
1455
1456- Fix some bugs and omissions in omshell.
1457
1458
1459 Changes since 3.0 Release Candidate 5
1460
1461- Fix a bug in omapi_object_dereference that prevented objects in
1462 chains from having their reference counts decreased on dereference.
1463
1464- Fix a bug in omapi_object_dereference that would prevent object
1465 chains from being freed upon removal of the last reference external
1466 to the chain.
1467
1468- Fix a number of other memory leaks in the OMAPI protocol subsystem.
1469
1470- Add code in the OMAPI protocol handler to trace memory leakage.
1471
1472- Clean up the memory allocation/reference history printer.
1473
98311e4b 1474- Support input of dotted quads and colon-separated hex lists as
eaf0b302
TL
1475 attribute values in omshell.
1476
98311e4b 1477- Fix a typo in the Linux interface discovery code.
eaf0b302
TL
1478
1479- Conditionalize a piece of trace code that wasn't conditional.
1480
1481 Changes since 3.0 Release Candidate 4
1482
1483- Fix a bug that would prevent leases from being abandoned properly on
1484 DHCPDECLINE.
1485
1486- Fix failover peer OMAPI support.
1487
1488- In failover, correctly handle expiration of leases. Previously,
1489 leases would never be reclaimed because they couldn't make the
1490 transition from EXPIRED to FREE.
1491
1492- Fix some broken failover state transitions.
1493
1494- Documentation fixes.
1495
1496- Take out an unnecessary check in DHCP relay agent information option
1497 stashing code that was preventing REBINDING clients from rebinding.
1498
1499- Prevent failover peers from allocating leases in DHCPREQUEST
1500 processing if the lease belongs to the other server.
1501
1502- Record server version in lease file introductory comment.
1503
1504- Correctly report connection errors in OMAPI and failover.
1505
1506- Make authentication signature algorithm name comparisons in OMAPI
1507 case-insensitive.
1508
1509- Fix compile problem on SunOS 4.x
1510
98311e4b 1511- If a signature algorithm is not terminated with '.', terminate it so
eaf0b302
TL
1512 that comparisons between fully-qualified names will work
1513 consistently.
1514
1515- Different SIOCGIFCONF probe code, may "fix" problem on some Linux
1516 systems with the probe not working correctly.
1517
1518- Don't allow user to type omapi key on command line of omshell.
1519
0596b051
TL
1520 Changes since 3.0 Release Candidate 3
1521
1522- Do lease billing on startup in a way that I *think* will finally do
1523 the billing correctly - the previous method could overbill as a
1524 result of duplicate leases.
1525
1526- Document OMAPI server objects.
1527
892fe689
TL
1528 Changes since 3.0 Release Candidate 2 Patchlevel 1
1529
1530- Fix some problems in the DDNS update code. Thanks to Albert
1531 Herranz for figuring out the main problem.
1532
1533- Fix some reference counting errors on host entries that were causing
1534 core dumps.
1535
1536- Fix a byte-swap bug in the token ring code, thanks to Jochen
1537 Friedrich.
1538
1539- Fix a bug in lease billing, thanks to Jonas Bulow.
1540
1541 Changes since 3.0 Release Candidate 2
1542
1543- Change the conditions under which a DHCPRELEASE is actually
1544 committed to be consistent with lease binding states rather than
98311e4b 1545 using the lease end time. This may fix some problems with the
892fe689
TL
1546 billing class code.
1547
1548- Fix a bug where lease updates would fail on Digital Unix (and maybe
1549 others) because malloc was called with a size of zero.
1550
1551- Fix a core dump that happens when the DHCP server can't create its
1552 trace file.
1553
79ea3de8 1554 Changes since 3.0 Release Candidate 1 Patchlevel 1
87784777 1555
79ea3de8
TL
1556- Fix the dhcp_failover_put_message to not attempt to allocate a
1557 zero-length buffer. Some versions of malloc() fail if you try to
1558 allocate a zero-length buffer, and this was causing problems on,
1559 e.g., Digital Unix.
1560
1561- Fix a case where the failover code was printing an error message
1562 when no error had occurred.
1563
1564- Fix a problem where when a server went down and back up again, the
1565 peer would not see a state transition and so would stay in the
1566 non-communicating state.
1567
1568- Be smart about going into recover_wait.
1569
1570- Fix a problem in the failover implementation where peers would fail
1571 to come into sync if interrupted in the RECOVER state. This could
1572 have been the cause of some problems people have reported recently.
1573
1574- Fix a problem with billing classes where they would not be unbilled
1575 when the client lease expired.
1576
1577- If select fails, figure out which descriptor is bad, and cut it out
1578 of the I/O loop. This prevents a potentially nasty spin. I
1579 haven't heard any report it in a while, but it came up consistently
1580 in testing.
1581
1582- Fix a bug in the relay agent where if you specified interfaces on
1583 the command line, it would fail.
1584
1585- Fix a couple of small bugs in the omapi connection object (no known
1586 user impact).
1587
1588- Add the missing 3.0 Beta 1 lease conversion script.
1589
1590- Read dhcp client script hooks if they exist, rather than only if
1591 they're executable.
1592
1593 Changes since 3.0 Release Candidate 1
87784777
TL
1594
1595- Fix a memory smash that happens when fixed-address leases are used.
1596 ANY SITE AT WHICH FIXED-ADDRESS STATEMENTS ARE BEING USED SHOULD
1597 UPGRADE IMMEDIATELY. This has been a long-standing bug - thanks to
1598 Alvise Nobile for discovering it and helping me to find it!
1599
79ea3de8
TL
1600- Fix a small bug in binary-to-ascii, thanks to H. Peter Anvin of
1601 Transmeta.
1602
87784777
TL
1603- There is a known problem with the DHCP server doing failover on
1604 Compaq Alpha systems. This patchlevel is not a release candidate
1605 because of this bug. The bug should be straightforward to fix, so
1606 a new release candidate is expected shortly.
1607
1608- There is a known problem in the DDNS update code that is probably a
1609 bug, and is not, as far as we know, fixed in this patchlevel.
1610
6d779c72
TL
1611 Changes since 3.0 Beta 2 Patchlevel 24
1612
1613- Went over problematic failover state transitions and made them all
1614 work, so that failover should now much less fragile.
1615
1616- Add some dhcpctl and omapi documentation
1617
1618- Fix compile errors when compiling with unusual predefines.
1619
1620- Make Token Ring work on Linux 2.4
1621
1622- Fix the Digital Unix BPF_WORDALIGN bug.
1623
1624- Fix some dhcp client documentation errors.
1625
1626- Update some parts of the README file.
1627
1628- Support GCC on SCO.
1629
de57e64b
TL
1630 Changes since 3.0 Beta 2 Patchlevel 23
1631
1632- Fix a bug in the DNS update code where a status code was not being
1633 checked. This may have been causing core dumps.
1634
1635- When parsing the lease file, if a lease declaration includes a
1636 billing class statement, and the lease already has a billing class,
1637 unbill the old class.
1638
1639- When processing failover transactions, where acks will be deferred,
1640 process the state transition immediately.
1641
1642- Don't try to use the new SIOCGIFCONF buffer size detection code on
1643 Linux 2.0, which doesn't provide this functionality.
1644
1645- Apply a patch suggested by Tuan Uong for a problem in dlpi.c.
1646
1647- Fix a problem in using the which command in the configure script.
1648
1649- Fix a parse error in the client when setting up an omapi listener.
1650
1651- Document the -n and -g flags to the client.
1652
1653- Make sure there is always a stdin and stdout on startup. This
1654 prevents shell scripts from accidentally writing error messages into
1655 configuration files that happen to be opened as stderr.
1656
1657- If an interface is removed, the client will now notice that it is
1658 gone rather than spinning. This has only been tested on NetBSD.
1659
1660- The client will attempt to get an address even if it can't create a
1661 lease file.
1662
1663- Don't overwrite tracefiles.
1664
1665- Fix some memory allocation bugs in failover.
2aa36519 1666
140158d3
TL
1667 Changes since 3.0 Beta 2 Patchlevel 22
1668
1669- Apply some patches suggested by Cyrille Lefevre, who is maintaining
1670 the FreeBSD ISC DHCP Distribution port.
1671
1672- Fix a core dump in DHCPRELEASE.
1673
3a395e60
TL
1674 Changes since 3.0 Beta 2 Patchlevel 21
1675
1676- This time for sure: fix the spin described in the changes for pl20.
1677
fc74dd0c
TL
1678 Changes since 3.0 Beta 2 Patchlevel 20
1679
1680- Fix a problem with Linux detecting large numbers of interfaces (Ben)
1681
1682- Fix a memory smash in the quotify code, which was introduced in
1683 pl19.
1684
1685- Actually fix the spin described in the changes for pl20. The
1686 previous fix only partially fixed the problem - enough to get it
1687 past the regression test.
1688
ed5ee591
TL
1689 Changes since 3.0 Beta 2 Patchlevel 19
1690
1691- Fix a bug that could cause the server to abort if compiled with
1692 POINTER_DEBUG enabled.
1693
1694- Fix a bug that could cause the server to spin when responding to a
1695 DHCPREQUEST.
1696
1697- Apply Joost Mulders' suggested patches for DLPI on x86.
1698
1699- Support NUL characters in quoted strings.
1700
1701- Install unformatted man pages on SunOS.
1702
b3fad8ac
TL
1703 Changes since 3.0 Beta 2 Patchlevel 18
1704
3350f5b7
TL
1705- Allow the server to be placed in partner-down state using OMAPI.
1706 (Damien Neil)
1707
1708- Implement omshell, which can be used to do arbitrary things to the
1709 server (in theory). (Damien Neil)
1710
1711- Fix a case where if a client had two different leases the server could
1712 actually dereference the second one when it hadn't been referenced,
1713 leading to memory corruption and a core dump. (James Brister)
1714
1715- Fix a case where a client could request the address of another client's
1716 lease, but find_lease wouldn't detect that the other client had it, and
1717 would attempt to allocate it to the client, resulting in a lease conflict
1718 message.
1719
1720- Fix a case where a client with more than one client identifier could be
1721 given a lease where the hardware address was correct but the client
1722 identifier was not, resulting in a lease conflict message.
1723
98311e4b 1724- Fix a problem where the server could write out a colon-separated
3350f5b7
TL
1725 hex list as a value for a variable, which would then not parse.
1726 The fix is to always write strings as quoted strings, with any
1727 non-printable characters quoted as octal escape sequences. So
1728 a file written the old way still won't work, but new files written
1729 this way will work.
1730
b3fad8ac
TL
1731- Fix documentation for sending non-standard options.
1732
1733- Use unparsable names for unknown options. WARNING: this will
1734 break any configuration files that use the option-nnn convention.
1735 If you want to continue to use this convention for some options,
1736 please be sure to write a definition, like this:
1737
1738 option option-nnn code nnn = string;
1739
1740 You can use a descriptive name instead of option-nnn if you like.
1741
1742- Fix a problem where we would see a DHCPDISCOVER/DHCPOFFER/
1743 DHCPREQUEST/DHCPACK/DHCPREQUEST/DHCPNAK sequence. This was the
1744 result of a deceptively silly bug in supersede_lease.
1745
1746- Fix client script exit status check, according to a fix supplied by
1747 Hermann Lauer.
1748
1749- Fix an endianness bug in the tracefile support, regarding ICMP
1750 messages.
1751
3350f5b7
TL
1752- Fix a bug in the client where the medium would not work correctly if
1753 it contained quoted strings.
1754
b3fad8ac
TL
1755 ** there was no pl17 **
1756
e6d30fd6
TL
1757 Changes since 3.0 Beta 2 Patchlevel 16
1758
6da9db9d
TL
1759- Add support for transaction tracing. This allows the state of the
1760 DHCP server on startup, and all the subsequent transactions, to be
1761 recorded in a file which can then be played back to reproduce the
1762 behaviour of the DHCP server. This can be used to quickly
1763 reproduce bugs that cause core dumps or corruption, and also for
1764 tracking down memory leaks.
1765
1766- Incorporate some bug fixes provided by Joost Mulders for the DLPI
1767 package which should clear up problems people have been seeing on
1768 Solaris.
1769
1770- Fix bugs in the handling of options stored as linked lists (agent
1771 options, fqdn options and nwip options) that could cause memory
1772 corruption and core dumps.
1773
1774- Fix a bug in DHCPREQUEST handling that resulted in DHCPNAK messages
1775 not being send in some cases when they were needed.
1776
1777- Make the lease structure somewhat more compact.
1778
1779- Make initial failover startup *much* faster. This was researched
1780 and implemented by Damien Neil.
1781
1782- Add a --version flag to all executables, which prints the program
1783 name and version to standard output.
1784
1785- Don't rewrite the lease file every thousand leases.
1786
e6d30fd6
TL
1787- A bug in nit.c for older SunOS machines was fixed by a patch sent in
1788 by Takeshi Hagiwara.
1789
6da9db9d
TL
1790- Fix a memory corruption bug in the DHCP client.
1791
1792- Lots of documentation updates.
1793
1794- Add a feature allowing environment variables to be passed to the
1795 DHCP client script on the DHCP client command line.
1796
1797- Fix client medium support, which had been broken for some time.
1798
1799- Fix a bug in the DHCP client initial startup backoff interval, which
1800 would cause two DHCPDISCOVERS to be sent back-to-back on startup.
1801
1802
af49fdff
TL
1803 Changes since 3.0 Beta 2 Patchlevel 15
1804
1805- Some documentation tweaks.
1806
1807- Maybe fix a problem in the DLPI code.
1808
1809- Fix some error code space inconsistencies in ddns update code.
1810
1811- Support relay agents that intercept unicast DHCP messages to stuff
1812 agent options into them.
1813
1814- Fix a small memory leak in the relay agent option support code.
1815
c5b569f8
TL
1816- Fix a core dump that would occur if a packet was sent with no
1817 options.
1818
754ae3e9
TL
1819 Changes since 3.0 Beta 2 Patchlevel 14
1820
1821- Finish fixing a long-standing bug in the agent options code. This
1822 was causing core dumps and failing to operate correctly - in
1823 particular, agent option stashing wasn't working. Agent option
1824 stashing should now be working, meaning that agent options can be
1825 used in class statements to control address allocation.
1826
1827- Fix up documentation.
1828
1829- Fix a couple of small memory leaks that would have added up
1830 significantly in a high-demand situation.
1831
1832- Add a log-facility configuration parameter.
1833
1834- Fix a compile error on some older operating systems.
1835
1836- Add the ability in the client to execute certain statements before
1837 transmitting packets to the server. Handy for debugging; not much
1838 practical use otherwise.
1839
1840- Don't send faked-out giaddr when renewing or bound - again, useful
1841 for debugging.
1842
2f2e7960
TL
1843 Changes since 3.0 Beta 2 Patchlevel 13
1844
1845- Fixed a problem where the fqdn decoder would sometimes try to store
1846 an option with an (unsigned) negative length, resulting in a core
1847 dump on some systems.
1848
1849- Work around the Win98 DHCP client, which NUL-terminates the FQDN
1850 option.
1851
1852- Work around Win98 and Win2k clients that will claim they want to do
1853 the update even when they don't have any way to do it.
1854
1855- Fix some log messages that can be printed when failover is operating
1856 that were not printing enough information.
1857
1858- It was possible for a DHCPDISCOVER to get an allocation even when
1859 the state machine said the server shouldn't be responding.
1860
1861- Don't load balance DHCPREQUESTs from clients in RENEWING and
1862 REBINDING, since in RENEWING, if we heard it, it's for us, and in
1863 REBINDING, the client wouldn't have got to REBINDING if its primary
1864 were answering.
1865
1866- When we get a bogus state lease binding state transition, don't do
1867 the transition.
1868
1869
66e98927
TL
1870 Changes since 3.0 Beta 2 Patchlevel 12
1871
1872- Fixed a couple of silly compile errors.
1873
a1e2e3d6
TL
1874 Changes since 3.0 Beta 2 Patchlevel 11
1875
1876- Albert Herranz tracked down and fixed a subtle bug in the base64
1877 decoder that would prevent any key with an 'x' in its base64
1878 representation from working correctly.
1879
1880- Thanks to Chris Cheney and Michael Sanders, we have a fix for the
1881 hang that they both spotted in the DHCP server - when
1882 one-lease-per-client was set, the code to release the "other" lease
1883 could spin.
1884
1885- Fix a problem with alignment of the input buffer in bpf in cases
1886 where two packets arrive in the same bpf read.
1887
1888- Fix a problem where the relay agent would crash if you specified an
1889 interface name on the command line.
1890
1891- Add the ability to conditionalize client behaviour based on the
1892 client state.
1893
1894- Add support for the FQDN option, and added support for a new way of
1895 doing ddns updates (ddns update style interim) that allows more than
1896 one DHCP server to update the DNS for the same network(s). This
1897 was implemented by Damien Neil with some additional functionality
1898 added by Ted Lemon.
1899
1900- Damien added a "log" statement, so that the configuration file can
1901 be made to log debugging information and other information.
1902
1903- Fixed a bug that caused option buffers not to be terminated with an
1904 end option.
1905
1906- Fixed a long-standing bug in the support for option spaces where the
1907 options are stored as an ordered list rather than in a hash table,
1908 which could theoretically result in memory pool corruption.
1909
1910- Prevent hardware declarations with no actual hardware address from
1911 being written as something unparsable, and behave correctly in the
1912 face of a null hardware address on input.
1913
1914- Allow key names to be FQDNs, and qualify the algorithm name if it is
1915 specified unqualified.
1916
1917- Modify the DDNS update code so that it never prints the "resolver
1918 failed" message, but instead says *why* the resolver failed.
1919
1920- Officially support the subnet selection option, which now has an
1921 RFC.
1922
1923- Fix a build bug on MacOS X.
1924
1925- Allow administrator to disable ping checking.
1926
1927- Clean up dhcpd.conf documentation and add more information about how
1928 it works.
1929
6c68ec36
TL
1930 Changes since 3.0 Beta 2 Patchlevel 10
1931
1932- Fix a bug introduced during debugging (!) and accidentally committed
1933 to CVS.
1934
9fd337e7
TL
1935 Changes since 3.0 Beta 2 Patchlevel 9
1936
1937- Fix DHCP client handling of vendor encapsulated options.
1938
1939- Fix a bug in the handling of relay agent information options introduced
1940 in patchlevel 9.
1941
1942- Stash agent options on client leases by default, and use the stashed
1943 options at renewal time.
1944
1945- Add the ability to test the client's binding state in the client
1946 configuration language.
1947
1948- Fix a core dump in the DNS update code.
1949
1950- Fix some expression evaluation bugs that were causing updates to be
1951 done when no client hostname was received.
1952
1953- Fix expression evaluation debugging printfs.
1954
1955- Teach pretty_print_option to print options in option spaces other than
1956 the DHCP option space.
1957
1958- Add a warning message if the RHS of a not is not boolean.
1959
1960- Never select for more than a day, because some implementations of
1961 select will just fail if the timeout is too long (!).
1962
1963- Fix a case where a DHCPDISCOVER from an unknown network would be
1964 silently dropped.
1965
1966- Fix a bug where if a client requested an IP address for which a different
1967 client had the lease, the DHCP server would reallocate it anyway.
1968
1969- Fix the DNS update code so that if the client changes its name, the DNS
1970 will be correctly updated.
1971
3922772a
TL
1972 Changes since 3.0 Beta 2 Patchlevel 8
1973
1974- Oops, there was another subtle math error in the header-length
1975 bounds-checking.
1976
1977 Changes since 3.0 Beta 2 Patchlevel 7
848c2547
TL
1978
1979- Oops, forgot to byte-swap udp header length before bounds-checking it.
1980
3922772a 1981 Changes since 3.0 Beta 2 Patchlevel 6
0f6045f8 1982
f8572308
TL
1983- Fix a possible DoS attack where a client could cause the checksummer
1984 to dump core. This was a read, not a write, so it shouldn't be
1985 possible to exploit it any further than that.
1986
1987- Implement client- and server-side support for using the Client FQDN
1988 option.
1989
1990- Support for other option spaces in the client has been added. This
1991 means that it is now possible to define a vendor option space on the
1992 client, request options in that space from the server (which must
1993 define the same option space), and then use those options in the
1994 client. This also allows NWIP and Client FQDN options to be used
1995 meaningfully.
1996
1997- Add object initializer support. This means that objects can now be
1998 initialized to something other than all-zeros when allocated, which
1999 makes, e.g., the interface object support code a little more robust.
2000
2001- Fix an off-by-one bug in the host stuffer. This was causing host
2002 deletes not the work, and may also have been causing OMAPI
2003 connections to get dropped. Thanks to James Brister for tracking
2004 this one down!
2005
2006- Fixed a core dump in the interface discovery code that is triggered
2007 when there is no subnet declaration for an interface, but the server
2008 decides to continue running. Thanks to Shane Kerr for tracking
2009 down and fixing this problem.
2010
2011 Changes since 3.0 Beta 2 Patchlevel 5
2012
0f6045f8
TL
2013- Fix a bug in the recent enhancement to the interface discovery code
2014 to support arbitrary-length interface lists.
2015
2016- Support NUL-terminated DHCP options when initializing client-script
2017 environment.
2018
2019- Fix suffix operator.
2020
2021- Fix NetWare/IP option parsing.
2022
2023- Better error/status checking in dhcpctl initialization and omapi
2024 connection code.
2025
2026- Fix a potential memory smash in dhcpctl code.
2027
2028- Fix SunOS4 and (maybe) Ultrix builds.
2029
2030- Fix a bug where a certain sort of incoming packet could cause a core
2031 dump on Solaris (and probably elsewhere).
2032
2033- Add some more safety checks in error logging code.
2034
2035- Add support for ISC_R_INCOMPLETE in OMAPI protocol connection code.
2036
2037- Fix relay agent so that if an interface is specified on the command
2038 line, the relay agent does not dump core.
2039
2040- Fix class matching so that match if can be combined with match or
2041 spawn with.
2042
2043- Do not allow spurious leases in the lease database to introduce
2044 potentially bogus leases into the in-memory database.
2045
2046- Fix a byte-order problem in the client hardware address type code
2047 for OMAPI.
2048
2049- Be slightly less picky about what sort of hardware addresses OMAPI
2050 can install in host declarations.
2051
801de092
TL
2052 Changes since 3.0 Beta 2 Patchlevel 4
2053
2054- Incorporated Peter Marschall's proposed change to array/record
2055 parsing, which allows things like the slp-agent option to be encoded
2056 correctly. Thanks very much to Peter for taking the initiative to
2057 do this, and for doing such a careful job of it (e.g., updating the
2058 comments)!
2059
2060- Added an encoding for the slp-agent option. :')
2061
6ed7a93d
TL
2062- Fixed SunOS 4 build. Thanks to Robert Elz for responding to my
2063 request for help on this with patches!
2064
2065- Incorporated a change that should fix a problem reported by Philippe
2066 Jumelle where when the network connection between two servers is
2067 lost, they never reconnect.
2068
2069- Fix client script files other than that for NetBSD to actually use
2070 make_resolv_conf as documented in the manual page.
2071
2072- Fix a bug in the packet handling code that could result in a core
2073 dump.
2074
2075- Fix a bug in the bootp code where responses on the local net would
2076 be sent to the wrong MAC address. Thanks to Jerry Schave for
2077 catching this one.
2078
490eb5e7
TL
2079 Changes since 3.0 Beta 2 Patchlevel 3
2080
2081- In the DHCP client, execute client statements prior to using the values
2082 of options, so that the client configuration can overried, e.g., the
2083 lease renewal time.
2084
2085- Fix a reference counting error that would result in very reproducible
2086 failures in updates, as well as occasional core dumps, if a zone was
2087 declared without a key.
2088
2089- Fix some Linux 2.0 compilation problems.
2090
2091- Fix a bug in scope evaluation during execution of "on" statements that
2092 caused values not to be recorded on leases.
2093
2094- If the dhcp-max-message-size option is specified in scope, and the
2095 client didn't send this option, use the one specified in scope to
2096 determine the maximum size of the response.
2097
592d8153
TL
2098 Changes since 3.0 Beta 2 Patchlevel 2
2099
359b023e
TL
2100- Fix a case where spawning subclasses were being allocated
2101 incorrectly, resulting in a core dump.
2102
592d8153
TL
2103- Fix a case where the DHCP server might inappropriately NAK a
2104 RENEWING client.
2105
2106- Fix a place dhcprequest() where static leases could leak.
2107
2108- Include memory.h in omapip_p.h so that we don't get warnings about
2109 using memcmp().
2110
2aa36519
TL
2111 Changes since 3.0 Beta 2 Patchlevel 1
2112
2113- Notice when SIOCFIGCONF returns more data than fit in the buffer -
2114 allocate a larger buffer, and retry. Thanks to Greg Fausak for
2115 pointing this out.
2116
2117- In the server, if no interfaces were configured, report an error and
2118 exit.
2119
2120- Don't ever record a state of 'startup'.
2121
2122- Don't try to evaluate the local failover binding address if none was
2123 specified. Thanks to Joseph Breu for finding this.