From: wdenk Date: Thu, 16 Nov 2000 22:47:21 +0000 (+0000) Subject: Add support for BOOTP Domain Name Server Option X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=880c5e9d1203a198e7e7880b9ff9c60404a6a085;p=users%2Frw%2Fppcboot.git Add support for BOOTP Domain Name Server Option --- diff --git a/CHANGELOG b/CHANGELOG index b146a12..384ef0e 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -52,6 +52,12 @@ To do: * "last user address" is set even if bootp is used without parameters (and it uses default address). +====================================================================== +Modifications since 0.6.2: +====================================================================== + +* Add support for BOOTP Domain Name Server Option + ====================================================================== Modifications for 0.6.2: ====================================================================== diff --git a/common/cmd_net.c b/common/cmd_net.c index 6c07e09..aafe673 100644 --- a/common/cmd_net.c +++ b/common/cmd_net.c @@ -79,6 +79,11 @@ static void netboot_update_env(void) NetIPaddr (NetServerIP, tmp); setenv("serverip", tmp); } + + if (NetOurDNSIP) { + NetIPaddr (NetOurDNSIP, tmp); + setenv("dnsip", tmp); + } } static void diff --git a/include/cmd_confdefs.h b/include/cmd_confdefs.h index 2a0cc2f..abc9367 100644 --- a/include/cmd_confdefs.h +++ b/include/cmd_confdefs.h @@ -74,6 +74,7 @@ #define CONFIG_BOOTP_NISDOMAIN 0x00000008 #define CONFIG_BOOTP_BOOTPATH 0x00000010 #define CONFIG_BOOTP_BOOTFILESIZE 0x00000020 +#define CONFIG_BOOTP_DNS 0x00000040 #define CONFIG_BOOTP_ALL (~0) diff --git a/include/net.h b/include/net.h index 21c415d..9418dea 100644 --- a/include/net.h +++ b/include/net.h @@ -170,6 +170,7 @@ typedef struct /** BOOTP EXTENTIONS **/ extern IPaddr_t NetOurGatewayIP; /* Our gateway IP addresse */ extern IPaddr_t NetOurSubnetMask; /* Our subnet mask (0 = unknown)*/ +extern IPaddr_t NetOurDNSIP; /* Our Domain Name Server (0 = unknown)*/ extern char NetOurNISDomain[32]; /* Our NIS domain */ extern char NetOurHostName[32]; /* Our hostname */ extern char NetOurRootPath[32]; /* Our root path */ diff --git a/net/bootp.c b/net/bootp.c index b6f6687..6e7f1aa 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -57,7 +57,10 @@ static void BootpVendorFieldProcess(u8 *ext) break; case 5: /* IEN-116 name server - Not yet supported */ break; - case 6: /* Domain name server - Not yet supported */ + case 6: + if (NetOurDNSIP == 0) { + memcpy(&NetOurDNSIP, ext+2, 4); + } break; case 7: /* Log server - Not yet supported */ break; @@ -250,6 +253,12 @@ static int BootpExtended (u8 *e) e += 4; #endif +#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS) + *e++ = 6; /* Domain Name Server */ + *e++ = 4; + e += 4; +#endif + #if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_HOSTNAME) *e++ = 12; /* Host name request */ *e++ = 32; diff --git a/net/net.c b/net/net.c index 0e506e8..b3e2eb2 100644 --- a/net/net.c +++ b/net/net.c @@ -22,7 +22,8 @@ /** BOOTP EXTENTIONS **/ IPaddr_t NetOurSubnetMask=0; /* Our subnet mask (0=unknown) */ -IPaddr_t NetOurGatewayIP=0; /* Our gateways IP addresses */ +IPaddr_t NetOurGatewayIP=0; /* Our gateways IP address */ +IPaddr_t NetOurDNSIP=0; /* Our DNS IP address */ char NetOurNISDomain[32]={0,}; /* Our NIS domain */ char NetOurHostName[32]={0,}; /* Our hostname */ char NetOurRootPath[32]={0,}; /* Our bootpath */