Ted Lemon [Thu, 20 May 1999 20:03:27 +0000 (20:03 +0000)]
- HTONS -> htons (typo).
- Fix some references to option values.
- Ack client requests for addresses that are available but that were
not assigned to them in a DHCPDISCOVER.
- Fix an operator precedence bug that would prevent the server from
looking for unabandoned leases before taking an abandoned lease.
Ted Lemon [Sat, 8 May 1999 18:22:49 +0000 (18:22 +0000)]
- Check for hints that client might be sending ciaddr erroneously before
trying to unicast to it. Hints include that it sent a server identifier
option or that it set the broadcast flag. Clients that follow RFC1541
instead of the proposed standard will set ciaddr when requesting, which is
what this code is intended to deal with.
However, if the requested address is on a different shared network than
the packet origination discovery code would suggest, then we ignore
these hints, because the client must have unicast its request to us.
- If a parameter request list is specified in scope, this list is used in
configuring the client, and supersedes any list sent by the client.
Ted Lemon [Fri, 7 May 1999 17:10:38 +0000 (17:10 +0000)]
- Make is_boolean_expression return true for expr_exists.
- Conditionalize pointer debug abort on POINTER_DEBUG.
- When using options in expression evaluation, make sure that there are
options to use.
Ted Lemon [Thu, 6 May 1999 20:35:48 +0000 (20:35 +0000)]
- In DHCPINFORM, allow for buggy clients that do not set ciaddr by
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.
Ted Lemon [Thu, 6 May 1999 20:25:41 +0000 (20:25 +0000)]
Remember in lease state
- whether or not we got requested address and server identifier
options, and
- the shared network to which the interface on which the request
arrived is attached.
Ted Lemon [Thu, 6 May 1999 20:20:43 +0000 (20:20 +0000)]
- Add support for a timezone offset in lease file (possibly useless).
- Add support for concat data subexpression.
- Add support for specifying option data as a data expression instead
of in the option's specified format.
- Do not respond with NAK if ciaddr is set and imputed network doesn't
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.