diff options
| author | Michael Brown | 2008-03-21 00:15:48 +0100 |
|---|---|---|
| committer | Michael Brown | 2008-03-21 00:15:48 +0100 |
| commit | cf033046206aede5064c798bfa887fbb888b9217 (patch) | |
| tree | 9836e9742cda7fd923a75eeb100b467817bd31b6 /src/net/udp | |
| parent | [Settings] Add per-netdevice settings block (diff) | |
| download | ipxe-cf033046206aede5064c798bfa887fbb888b9217.tar.gz ipxe-cf033046206aede5064c798bfa887fbb888b9217.tar.xz ipxe-cf033046206aede5064c798bfa887fbb888b9217.zip | |
[Settings] Introduce settings applicators.
Convert DHCP option applicators in dns.c and iscsi.c to settings
applicators.
Kill off DHCP option applicators.
Diffstat (limited to 'src/net/udp')
| -rw-r--r-- | src/net/udp/dns.c | 35 |
1 files changed, 17 insertions, 18 deletions
diff --git a/src/net/udp/dns.c b/src/net/udp/dns.c index d82d124b6..5e632d180 100644 --- a/src/net/udp/dns.c +++ b/src/net/udp/dns.c @@ -30,7 +30,7 @@ #include <gpxe/resolv.h> #include <gpxe/retry.h> #include <gpxe/tcpip.h> -#include <gpxe/dhcp.h> +#include <gpxe/settings.h> #include <gpxe/features.h> #include <gpxe/dns.h> @@ -507,27 +507,26 @@ struct resolver dns_resolver __resolver ( RESOLV_NORMAL ) = { }; /** - * Apply DHCP nameserver option + * Apply nameserver setting * - * @v tag DHCP option tag - * @v option DHCP option + * @ret rc Return status code */ -static int apply_dhcp_nameserver ( unsigned int tag __unused, - struct dhcp_option *option ) { - struct sockaddr_in *sin_nameserver; - - sin_nameserver = ( struct sockaddr_in * ) &nameserver; - sin_nameserver->sin_family = AF_INET; - dhcp_ipv4_option ( option, &sin_nameserver->sin_addr ); - - DBG ( "DNS using nameserver %s\n", - inet_ntoa ( sin_nameserver->sin_addr ) ); +static int apply_nameserver_setting ( void ) { + struct sockaddr_in *sin_nameserver = + ( struct sockaddr_in * ) &nameserver; + int len; + + if ( ( len = fetch_ipv4_setting ( NULL, DHCP_DNS_SERVERS, + &sin_nameserver->sin_addr ) ) >= 0 ){ + sin_nameserver->sin_family = AF_INET; + DBG ( "DNS using nameserver %s\n", + inet_ntoa ( sin_nameserver->sin_addr ) ); + } return 0; } -/** DHCP nameserver applicator */ -struct dhcp_option_applicator dhcp_nameserver_applicator __dhcp_applicator = { - .tag = DHCP_DNS_SERVERS, - .apply = apply_dhcp_nameserver, +/** Nameserver setting applicator */ +struct settings_applicator nameserver_applicator __settings_applicator = { + .apply = apply_nameserver_setting, }; |
