From Francois-Xavier Le Bail: suport for the DHCP Classless Static Route
authorguy <guy>
Tue, 24 Jul 2007 17:29:43 +0000 (17:29 +0000)
committerguy <guy>
Tue, 24 Jul 2007 17:29:43 +0000 (17:29 +0000)
commitb38e7655192dfe512e25869e04a4ff1dca486f44
tree11f6b867d414302e72c468e04a2ea50b3ad26d09
parent79c12aea8690bfe37c52f6c34e14870d4b54d8a8
From Francois-Xavier Le Bail: suport for the DHCP Classless Static Route
option (RFC 3442).

Just modify the "len" variable as we parse an option - no need for a
separate variable representing the amount of data left (I suspect that's
why the wrong variable appears to have been used in the "trailing data
length" message; I'd expect that message to indicate how much *extra*
data there was in the option, not how much *total* data there was in the
option).

Add checks for too-short options in some cases where they were missing.
In the check for the Client FQDN option, skip past what data there is in
the option if it's too short, so it doesn't show up as extra data in the
option.

For the Agent Circuit option, for each suboption:

check to make sure the suboption length doesn't go past what's
left in the option;

don't reject options with an option type or length of 0 (neither
are forbidden by RFC 3046, and, in fact, RFC 3046 says "a
sub-option length may be zero");

use fn_printn() to print the Agent Circuit ID suboption, rather
than doing the equivalent ourselves with a safeputchar() loop.
bootp.h
print-bootp.c