]> www.infradead.org Git - users/rw/ppcboot.git/commitdiff
Add support for BOOTP Domain Name Server Option
authorwdenk <wdenk>
Thu, 16 Nov 2000 22:47:21 +0000 (22:47 +0000)
committerwdenk <wdenk>
Thu, 16 Nov 2000 22:47:21 +0000 (22:47 +0000)
CHANGELOG
common/cmd_net.c
include/cmd_confdefs.h
include/net.h
net/bootp.c
net/net.c

index b146a12970db5ea8caafbc64ae18802f3cf85781..384ef0ec84f0d0e4ed2644122dbe5c1653a2165a 100644 (file)
--- 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:
 ======================================================================
index 6c07e0912429b04b78b84ce88c5a6927f344bf49..aafe673d25c988bad7ad4391cff1e98b22e65f69 100644 (file)
@@ -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
index 2a0cc2fac0ce2a805c9ed0a35ff92d02d49c9c28..abc936787b12b0853f5fd1e6e812f38561ba16b5 100644 (file)
@@ -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)
 
index 21c415d5c0605c0955aad03c4c47bd3244f9274a..9418deaab56512035ae8c71f3594bbcf1cae5bb5 100644 (file)
@@ -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                */
index b6f6687eac13e823275750bdb9e8ef5f38506062..6e7f1aa826e15ecfa693a70acf9a9cc9180d45b2 100644 (file)
@@ -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;
index 0e506e800e563804e3123e3e4f4a182a76bbae87..b3e2eb23521782f74c35f3d9075ef397d81e3e79 100644 (file)
--- 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                 */