client with a host declaration that matches by hardware address only
from getting more than one lease through the use of that host
declaration by releasing any other such leases.
using the IP source address from the IP header if ciaddr is zero.
- Fix some memory allocation botches.
- Use parameter request list option from scope if it is present and
client didn't send one.
- Copy ciaddr from incoming packet to outgoing packet.
- Remember that we got the requested-address and server-identifier
options in option state.
- Allow for RFC1541 clients that set ciaddr when REQUESTING by
checking server-identifier option as well as ciaddr before
unicasting.
match, since ciaddr means client is unicasting using IP routing.
- Support DHCPINFORM even on unknown networks.
- Fix up some invocations of evaluate_option_cache that used
post-scope-execution option state rather than packet option state as
input for evaluations of options from post-scope-execution option
state.
- Add support for site-defined option spaces.
- Compute boot file server prior to freeing options used in computing
it. May fix a core dump that has been reported but that I haven't
seen.
- Make pool scope less specific than class scope.
- Fix some invocations of execute_statements_in_scope that were
incorrectly passing output options where they should have passed
input options.
- Enforce maximum lease length after applying default lease time.
- Compute value of bootfile server IP address in ack_lease instead of
dhcp_reply, so that expressions using contents of packet can work.
still be available when we call cons_options.
- Pass parameter request list to cons_options where needed, and in any case
pass the extra argument.
- Free parameter request list before freeing lease state structures.
- Fix some problems in DHCPREQUEST code regarding client identity.
- Update references to lease's shared network to use subnet pointer.
- If there's more than one lease matching a particular hardware address,
examine them all for possible applicability in find_lease().
- Only recover abandoned leases on DHCPREQUEST if the request was for
the specific abandoned lease. Push all other abandoned lease
recovery code out into DHCPDISCOVER/allocate_lease processing.