diff options
author | Michael Brown <mcb30@ipxe.org> | 2014-01-31 18:16:42 +0000 |
---|---|---|
committer | Michael Brown <mcb30@ipxe.org> | 2014-02-05 14:56:49 +0000 |
commit | d4c0226a6ce888218f258df409bb6a955e727d81 (patch) | |
tree | 365925bb9a14bdfb25763088ee0f53944181500b /src/net/ndp.c | |
parent | 3fa7a3b136646c4a3e9848c3f4125a28533e8eb0 (diff) | |
download | ipxe-d4c0226a6ce888218f258df409bb6a955e727d81.tar.gz |
[dns] Support DNS search lists
Update the DNS resolver to support DNS search lists (as provided by
DHCP option 119, DHCPv6 option 24, or NDP option 31).
Add validation code to ensure that parsing of DNS packets does not
overrun the input, get stuck in infinite loops, or (worse) write
beyond the end of allocated buffers.
Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/net/ndp.c')
-rw-r--r-- | src/net/ndp.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/net/ndp.c b/src/net/ndp.c index 8141c8deb..6450aa9f0 100644 --- a/src/net/ndp.c +++ b/src/net/ndp.c @@ -786,6 +786,16 @@ const struct setting ndp_dns6_setting __setting ( SETTING_IP_EXTRA, dns6 ) = { .scope = &ndp_settings_scope, }; +/** DNS search list setting */ +const struct setting ndp_dnssl_setting __setting ( SETTING_IP_EXTRA, dnssl ) = { + .name = "dnssl", + .description = "DNS search list", + .tag = NDP_TAG ( NDP_OPT_DNSSL, + offsetof ( struct ndp_dnssl_option, names ) ), + .type = &setting_type_dnssl, + .scope = &ndp_settings_scope, +}; + /**************************************************************************** * * IPv6 autoconfiguration |