]> git.ipfire.org Git - thirdparty/dhcp.git/blame - RELNOTES
Update version and changelog
[thirdparty/dhcp.git] / RELNOTES
CommitLineData
da411127 1 Internet Software Consortium DHCP Distribution
140158d3
TL
2 Version 3, Beta 2, Patchlevel 23
3 March 22, 2001
72c7bd79
TL
4
5 Release Notes
6
74f45f96
TL
7This is a development snapshot of Version 3 of the Internet Software
8Consortium DHCP Distribution.
72c7bd79 9
da411127 10 NEW FEATURES
16449d9c 11
da411127
TL
12Version 3, Beta 2 of the ISC DHCP Distribution includes the following
13features that are new since version 2.0:
29d5553a 14
da411127
TL
15 - DHCP Failover Protocol support
16 - OMAPI, an API for accessing and modifying the DHCP server and
17 client state.
18 - Conditional behaviour
19 - Storing arbitrary information on leases
20 - Address pools with access control
21 - Client classing
22 - Address allocation restriction by class
23 - Relay agent information option support
24 - Dynamic DNS updates
25 - Many bug fixes, performance enhancements, and minor new DHCP
26 protocol features.
72c7bd79 27
f67f6c4a
TL
28This beta release is quite new, and is running in production at only a
29few sites. We strongly recommend that you exercise caution in
30installing it. The 3.0 Beta 2 lease file is not backwards compatible
31with the 3.0 Beta 1 lease file, so if you have to go back, you will
32have to convert your lease files back to the 3.0 Beta 1 format - if
33you try to run a 3.0 Beta 1 server on a 3.0 Beta 2 lease file, it will
34cheerfully delete all your leases. Having said that, of course the
35way that new releases of open source software become stable is by
36people using them, finding the bugs, and reporting the bugs. So
37while we urge you to exercise caution, we would also appreciate any
38testing or production use you can safely do.
4ff4053b 39
ca4606b5
TL
40For information on how to install, configure and run this software,
41as well as how to find documentation and report bugs, please consult
42the README file.
43
da411127
TL
44The Dynamic DNS Update support is a descendent of an implementation
45done by Lans Carstensen and Brian Dols at Rose-Hulman Institute of
46Technology, Jim Watt at Perkin-Elmer, Irina Goble at Integrated
47Measurement Systems, and Brian Murrell at BC Tel Advanced
48Communications. I'd like to express my thanks to all of these good
49people here, both for working on the code and for prodding me into
50improving it.
2aa36519 51
140158d3
TL
52 Changes since 3.0 Beta 2 Patchlevel 22
53
54- Apply some patches suggested by Cyrille Lefevre, who is maintaining
55 the FreeBSD ISC DHCP Distribution port.
56
57- Fix a core dump in DHCPRELEASE.
58
3a395e60
TL
59 Changes since 3.0 Beta 2 Patchlevel 21
60
61- This time for sure: fix the spin described in the changes for pl20.
62
fc74dd0c
TL
63 Changes since 3.0 Beta 2 Patchlevel 20
64
65- Fix a problem with Linux detecting large numbers of interfaces (Ben)
66
67- Fix a memory smash in the quotify code, which was introduced in
68 pl19.
69
70- Actually fix the spin described in the changes for pl20. The
71 previous fix only partially fixed the problem - enough to get it
72 past the regression test.
73
ed5ee591
TL
74 Changes since 3.0 Beta 2 Patchlevel 19
75
76- Fix a bug that could cause the server to abort if compiled with
77 POINTER_DEBUG enabled.
78
79- Fix a bug that could cause the server to spin when responding to a
80 DHCPREQUEST.
81
82- Apply Joost Mulders' suggested patches for DLPI on x86.
83
84- Support NUL characters in quoted strings.
85
86- Install unformatted man pages on SunOS.
87
b3fad8ac
TL
88 Changes since 3.0 Beta 2 Patchlevel 18
89
3350f5b7
TL
90- Allow the server to be placed in partner-down state using OMAPI.
91 (Damien Neil)
92
93- Implement omshell, which can be used to do arbitrary things to the
94 server (in theory). (Damien Neil)
95
96- Fix a case where if a client had two different leases the server could
97 actually dereference the second one when it hadn't been referenced,
98 leading to memory corruption and a core dump. (James Brister)
99
100- Fix a case where a client could request the address of another client's
101 lease, but find_lease wouldn't detect that the other client had it, and
102 would attempt to allocate it to the client, resulting in a lease conflict
103 message.
104
105- Fix a case where a client with more than one client identifier could be
106 given a lease where the hardware address was correct but the client
107 identifier was not, resulting in a lease conflict message.
108
109- Fix a problem where the server could write out a colon-seperated
110 hex list as a value for a variable, which would then not parse.
111 The fix is to always write strings as quoted strings, with any
112 non-printable characters quoted as octal escape sequences. So
113 a file written the old way still won't work, but new files written
114 this way will work.
115
b3fad8ac
TL
116- Fix documentation for sending non-standard options.
117
118- Use unparsable names for unknown options. WARNING: this will
119 break any configuration files that use the option-nnn convention.
120 If you want to continue to use this convention for some options,
121 please be sure to write a definition, like this:
122
123 option option-nnn code nnn = string;
124
125 You can use a descriptive name instead of option-nnn if you like.
126
127- Fix a problem where we would see a DHCPDISCOVER/DHCPOFFER/
128 DHCPREQUEST/DHCPACK/DHCPREQUEST/DHCPNAK sequence. This was the
129 result of a deceptively silly bug in supersede_lease.
130
131- Fix client script exit status check, according to a fix supplied by
132 Hermann Lauer.
133
134- Fix an endianness bug in the tracefile support, regarding ICMP
135 messages.
136
3350f5b7
TL
137- Fix a bug in the client where the medium would not work correctly if
138 it contained quoted strings.
139
b3fad8ac
TL
140 ** there was no pl17 **
141
e6d30fd6
TL
142 Changes since 3.0 Beta 2 Patchlevel 16
143
6da9db9d
TL
144- Add support for transaction tracing. This allows the state of the
145 DHCP server on startup, and all the subsequent transactions, to be
146 recorded in a file which can then be played back to reproduce the
147 behaviour of the DHCP server. This can be used to quickly
148 reproduce bugs that cause core dumps or corruption, and also for
149 tracking down memory leaks.
150
151- Incorporate some bug fixes provided by Joost Mulders for the DLPI
152 package which should clear up problems people have been seeing on
153 Solaris.
154
155- Fix bugs in the handling of options stored as linked lists (agent
156 options, fqdn options and nwip options) that could cause memory
157 corruption and core dumps.
158
159- Fix a bug in DHCPREQUEST handling that resulted in DHCPNAK messages
160 not being send in some cases when they were needed.
161
162- Make the lease structure somewhat more compact.
163
164- Make initial failover startup *much* faster. This was researched
165 and implemented by Damien Neil.
166
167- Add a --version flag to all executables, which prints the program
168 name and version to standard output.
169
170- Don't rewrite the lease file every thousand leases.
171
e6d30fd6
TL
172- A bug in nit.c for older SunOS machines was fixed by a patch sent in
173 by Takeshi Hagiwara.
174
6da9db9d
TL
175- Fix a memory corruption bug in the DHCP client.
176
177- Lots of documentation updates.
178
179- Add a feature allowing environment variables to be passed to the
180 DHCP client script on the DHCP client command line.
181
182- Fix client medium support, which had been broken for some time.
183
184- Fix a bug in the DHCP client initial startup backoff interval, which
185 would cause two DHCPDISCOVERS to be sent back-to-back on startup.
186
187
af49fdff
TL
188 Changes since 3.0 Beta 2 Patchlevel 15
189
190- Some documentation tweaks.
191
192- Maybe fix a problem in the DLPI code.
193
194- Fix some error code space inconsistencies in ddns update code.
195
196- Support relay agents that intercept unicast DHCP messages to stuff
197 agent options into them.
198
199- Fix a small memory leak in the relay agent option support code.
200
c5b569f8
TL
201- Fix a core dump that would occur if a packet was sent with no
202 options.
203
754ae3e9
TL
204 Changes since 3.0 Beta 2 Patchlevel 14
205
206- Finish fixing a long-standing bug in the agent options code. This
207 was causing core dumps and failing to operate correctly - in
208 particular, agent option stashing wasn't working. Agent option
209 stashing should now be working, meaning that agent options can be
210 used in class statements to control address allocation.
211
212- Fix up documentation.
213
214- Fix a couple of small memory leaks that would have added up
215 significantly in a high-demand situation.
216
217- Add a log-facility configuration parameter.
218
219- Fix a compile error on some older operating systems.
220
221- Add the ability in the client to execute certain statements before
222 transmitting packets to the server. Handy for debugging; not much
223 practical use otherwise.
224
225- Don't send faked-out giaddr when renewing or bound - again, useful
226 for debugging.
227
2f2e7960
TL
228 Changes since 3.0 Beta 2 Patchlevel 13
229
230- Fixed a problem where the fqdn decoder would sometimes try to store
231 an option with an (unsigned) negative length, resulting in a core
232 dump on some systems.
233
234- Work around the Win98 DHCP client, which NUL-terminates the FQDN
235 option.
236
237- Work around Win98 and Win2k clients that will claim they want to do
238 the update even when they don't have any way to do it.
239
240- Fix some log messages that can be printed when failover is operating
241 that were not printing enough information.
242
243- It was possible for a DHCPDISCOVER to get an allocation even when
244 the state machine said the server shouldn't be responding.
245
246- Don't load balance DHCPREQUESTs from clients in RENEWING and
247 REBINDING, since in RENEWING, if we heard it, it's for us, and in
248 REBINDING, the client wouldn't have got to REBINDING if its primary
249 were answering.
250
251- When we get a bogus state lease binding state transition, don't do
252 the transition.
253
254
66e98927
TL
255 Changes since 3.0 Beta 2 Patchlevel 12
256
257- Fixed a couple of silly compile errors.
258
a1e2e3d6
TL
259 Changes since 3.0 Beta 2 Patchlevel 11
260
261- Albert Herranz tracked down and fixed a subtle bug in the base64
262 decoder that would prevent any key with an 'x' in its base64
263 representation from working correctly.
264
265- Thanks to Chris Cheney and Michael Sanders, we have a fix for the
266 hang that they both spotted in the DHCP server - when
267 one-lease-per-client was set, the code to release the "other" lease
268 could spin.
269
270- Fix a problem with alignment of the input buffer in bpf in cases
271 where two packets arrive in the same bpf read.
272
273- Fix a problem where the relay agent would crash if you specified an
274 interface name on the command line.
275
276- Add the ability to conditionalize client behaviour based on the
277 client state.
278
279- Add support for the FQDN option, and added support for a new way of
280 doing ddns updates (ddns update style interim) that allows more than
281 one DHCP server to update the DNS for the same network(s). This
282 was implemented by Damien Neil with some additional functionality
283 added by Ted Lemon.
284
285- Damien added a "log" statement, so that the configuration file can
286 be made to log debugging information and other information.
287
288- Fixed a bug that caused option buffers not to be terminated with an
289 end option.
290
291- Fixed a long-standing bug in the support for option spaces where the
292 options are stored as an ordered list rather than in a hash table,
293 which could theoretically result in memory pool corruption.
294
295- Prevent hardware declarations with no actual hardware address from
296 being written as something unparsable, and behave correctly in the
297 face of a null hardware address on input.
298
299- Allow key names to be FQDNs, and qualify the algorithm name if it is
300 specified unqualified.
301
302- Modify the DDNS update code so that it never prints the "resolver
303 failed" message, but instead says *why* the resolver failed.
304
305- Officially support the subnet selection option, which now has an
306 RFC.
307
308- Fix a build bug on MacOS X.
309
310- Allow administrator to disable ping checking.
311
312- Clean up dhcpd.conf documentation and add more information about how
313 it works.
314
6c68ec36
TL
315 Changes since 3.0 Beta 2 Patchlevel 10
316
317- Fix a bug introduced during debugging (!) and accidentally committed
318 to CVS.
319
9fd337e7
TL
320 Changes since 3.0 Beta 2 Patchlevel 9
321
322- Fix DHCP client handling of vendor encapsulated options.
323
324- Fix a bug in the handling of relay agent information options introduced
325 in patchlevel 9.
326
327- Stash agent options on client leases by default, and use the stashed
328 options at renewal time.
329
330- Add the ability to test the client's binding state in the client
331 configuration language.
332
333- Fix a core dump in the DNS update code.
334
335- Fix some expression evaluation bugs that were causing updates to be
336 done when no client hostname was received.
337
338- Fix expression evaluation debugging printfs.
339
340- Teach pretty_print_option to print options in option spaces other than
341 the DHCP option space.
342
343- Add a warning message if the RHS of a not is not boolean.
344
345- Never select for more than a day, because some implementations of
346 select will just fail if the timeout is too long (!).
347
348- Fix a case where a DHCPDISCOVER from an unknown network would be
349 silently dropped.
350
351- Fix a bug where if a client requested an IP address for which a different
352 client had the lease, the DHCP server would reallocate it anyway.
353
354- Fix the DNS update code so that if the client changes its name, the DNS
355 will be correctly updated.
356
3922772a
TL
357 Changes since 3.0 Beta 2 Patchlevel 8
358
359- Oops, there was another subtle math error in the header-length
360 bounds-checking.
361
362 Changes since 3.0 Beta 2 Patchlevel 7
848c2547
TL
363
364- Oops, forgot to byte-swap udp header length before bounds-checking it.
365
3922772a 366 Changes since 3.0 Beta 2 Patchlevel 6
0f6045f8 367
f8572308
TL
368- Fix a possible DoS attack where a client could cause the checksummer
369 to dump core. This was a read, not a write, so it shouldn't be
370 possible to exploit it any further than that.
371
372- Implement client- and server-side support for using the Client FQDN
373 option.
374
375- Support for other option spaces in the client has been added. This
376 means that it is now possible to define a vendor option space on the
377 client, request options in that space from the server (which must
378 define the same option space), and then use those options in the
379 client. This also allows NWIP and Client FQDN options to be used
380 meaningfully.
381
382- Add object initializer support. This means that objects can now be
383 initialized to something other than all-zeros when allocated, which
384 makes, e.g., the interface object support code a little more robust.
385
386- Fix an off-by-one bug in the host stuffer. This was causing host
387 deletes not the work, and may also have been causing OMAPI
388 connections to get dropped. Thanks to James Brister for tracking
389 this one down!
390
391- Fixed a core dump in the interface discovery code that is triggered
392 when there is no subnet declaration for an interface, but the server
393 decides to continue running. Thanks to Shane Kerr for tracking
394 down and fixing this problem.
395
396 Changes since 3.0 Beta 2 Patchlevel 5
397
0f6045f8
TL
398- Fix a bug in the recent enhancement to the interface discovery code
399 to support arbitrary-length interface lists.
400
401- Support NUL-terminated DHCP options when initializing client-script
402 environment.
403
404- Fix suffix operator.
405
406- Fix NetWare/IP option parsing.
407
408- Better error/status checking in dhcpctl initialization and omapi
409 connection code.
410
411- Fix a potential memory smash in dhcpctl code.
412
413- Fix SunOS4 and (maybe) Ultrix builds.
414
415- Fix a bug where a certain sort of incoming packet could cause a core
416 dump on Solaris (and probably elsewhere).
417
418- Add some more safety checks in error logging code.
419
420- Add support for ISC_R_INCOMPLETE in OMAPI protocol connection code.
421
422- Fix relay agent so that if an interface is specified on the command
423 line, the relay agent does not dump core.
424
425- Fix class matching so that match if can be combined with match or
426 spawn with.
427
428- Do not allow spurious leases in the lease database to introduce
429 potentially bogus leases into the in-memory database.
430
431- Fix a byte-order problem in the client hardware address type code
432 for OMAPI.
433
434- Be slightly less picky about what sort of hardware addresses OMAPI
435 can install in host declarations.
436
801de092
TL
437 Changes since 3.0 Beta 2 Patchlevel 4
438
439- Incorporated Peter Marschall's proposed change to array/record
440 parsing, which allows things like the slp-agent option to be encoded
441 correctly. Thanks very much to Peter for taking the initiative to
442 do this, and for doing such a careful job of it (e.g., updating the
443 comments)!
444
445- Added an encoding for the slp-agent option. :')
446
6ed7a93d
TL
447- Fixed SunOS 4 build. Thanks to Robert Elz for responding to my
448 request for help on this with patches!
449
450- Incorporated a change that should fix a problem reported by Philippe
451 Jumelle where when the network connection between two servers is
452 lost, they never reconnect.
453
454- Fix client script files other than that for NetBSD to actually use
455 make_resolv_conf as documented in the manual page.
456
457- Fix a bug in the packet handling code that could result in a core
458 dump.
459
460- Fix a bug in the bootp code where responses on the local net would
461 be sent to the wrong MAC address. Thanks to Jerry Schave for
462 catching this one.
463
490eb5e7
TL
464 Changes since 3.0 Beta 2 Patchlevel 3
465
466- In the DHCP client, execute client statements prior to using the values
467 of options, so that the client configuration can overried, e.g., the
468 lease renewal time.
469
470- Fix a reference counting error that would result in very reproducible
471 failures in updates, as well as occasional core dumps, if a zone was
472 declared without a key.
473
474- Fix some Linux 2.0 compilation problems.
475
476- Fix a bug in scope evaluation during execution of "on" statements that
477 caused values not to be recorded on leases.
478
479- If the dhcp-max-message-size option is specified in scope, and the
480 client didn't send this option, use the one specified in scope to
481 determine the maximum size of the response.
482
592d8153
TL
483 Changes since 3.0 Beta 2 Patchlevel 2
484
359b023e
TL
485- Fix a case where spawning subclasses were being allocated
486 incorrectly, resulting in a core dump.
487
592d8153
TL
488- Fix a case where the DHCP server might inappropriately NAK a
489 RENEWING client.
490
491- Fix a place dhcprequest() where static leases could leak.
492
493- Include memory.h in omapip_p.h so that we don't get warnings about
494 using memcmp().
495
2aa36519
TL
496 Changes since 3.0 Beta 2 Patchlevel 1
497
498- Notice when SIOCFIGCONF returns more data than fit in the buffer -
499 allocate a larger buffer, and retry. Thanks to Greg Fausak for
500 pointing this out.
501
502- In the server, if no interfaces were configured, report an error and
503 exit.
504
505- Don't ever record a state of 'startup'.
506
507- Don't try to evaluate the local failover binding address if none was
508 specified. Thanks to Joseph Breu for finding this.