|
@@ -174,6 +174,11 @@ static void BootpVendorFieldProcess(u8 *ext)
|
|
|
if (NetOurDNSIP == 0) {
|
|
|
NetCopyIP(&NetOurDNSIP, (IPaddr_t*)(ext+2));
|
|
|
}
|
|
|
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2)
|
|
|
+ if ((NetOurDNS2IP == 0) && (size > 4)) {
|
|
|
+ NetCopyIP(&NetOurDNS2IP, (IPaddr_t*)(ext+2+4));
|
|
|
+ }
|
|
|
+#endif
|
|
|
break;
|
|
|
case 7: /* Log server - Not yet supported */
|
|
|
break;
|
|
@@ -365,6 +370,9 @@ static int DhcpExtended(u8 *e, int message_type, IPaddr_t ServerID, IPaddr_t Req
|
|
|
#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_VENDOREX)
|
|
|
u8 *x;
|
|
|
#endif
|
|
|
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SEND_HOSTNAME)
|
|
|
+ uchar *hostname;
|
|
|
+#endif
|
|
|
|
|
|
*e++ = 99; /* RFC1048 Magic Cookie */
|
|
|
*e++ = 130;
|
|
@@ -402,6 +410,16 @@ static int DhcpExtended(u8 *e, int message_type, IPaddr_t ServerID, IPaddr_t Req
|
|
|
*e++ = tmp & 0xff;
|
|
|
}
|
|
|
|
|
|
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SEND_HOSTNAME)
|
|
|
+ if ( (hostname = getenv("hostname")) ) {
|
|
|
+ int hostnamelen = strlen(hostname);
|
|
|
+ *e++ = 12; /* Hostname */
|
|
|
+ *e++ = hostnamelen;
|
|
|
+ memcpy(e,hostname,hostnamelen);
|
|
|
+ e += hostnamelen;
|
|
|
+ }
|
|
|
+#endif
|
|
|
+
|
|
|
#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_VENDOREX)
|
|
|
if ((x = dhcp_vendorex_prep (e)))
|
|
|
return x - start ;
|
|
@@ -690,6 +708,11 @@ static void DhcpOptionsProcess(uchar *popt)
|
|
|
break;
|
|
|
case 6:
|
|
|
NetCopyIP(&NetOurDNSIP, (popt+2));
|
|
|
+#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2)
|
|
|
+ if ( *(popt+1) > 4 ) {
|
|
|
+ NetCopyIP(&NetOurDNS2IP, (popt+2+4));
|
|
|
+ }
|
|
|
+#endif
|
|
|
break;
|
|
|
case 12:
|
|
|
size = truncate_sz ("Host Name",
|