diff options
| author | Stefan Roese <sr@denx.de> | 2007-08-14 16:36:29 +0200 | 
|---|---|---|
| committer | Stefan Roese <sr@denx.de> | 2007-08-14 16:36:29 +0200 | 
| commit | 3b3bff4cbf2cb14f9a3e7d03f26ebab900efe4ae (patch) | |
| tree | fb66bf8861d9f78765160d734a438856f5317cdb /net/bootp.c | |
| parent | 4ce846ec59f36b85d6644a769690ad3feb667575 (diff) | |
| parent | 4ef35e53c693556c54b0c22d6f873de87bade253 (diff) | |
| download | olio-uboot-2014.01-3b3bff4cbf2cb14f9a3e7d03f26ebab900efe4ae.tar.xz olio-uboot-2014.01-3b3bff4cbf2cb14f9a3e7d03f26ebab900efe4ae.zip | |
Merge with git://www.denx.de/git/u-boot.git
Diffstat (limited to 'net/bootp.c')
| -rw-r--r-- | net/bootp.c | 96 | 
1 files changed, 49 insertions, 47 deletions
| diff --git a/net/bootp.c b/net/bootp.c index 1de9a8f2c..be1ee332a 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -31,7 +31,7 @@  #define BOOTP_VENDOR_MAGIC	0x63825363	/* RFC1048 Magic Cookie		*/ -#if (CONFIG_COMMANDS & CFG_CMD_NET) +#if defined(CONFIG_CMD_NET)  #define TIMEOUT		5		/* Seconds before trying BOOTP again	*/  #ifndef CONFIG_NET_RETRY_COUNT @@ -53,7 +53,7 @@ int		BootpTry;  ulong		seed1, seed2;  #endif -#if (CONFIG_COMMANDS & CFG_CMD_DHCP) +#if defined(CONFIG_CMD_DHCP)  dhcp_state_t dhcp_state = INIT;  unsigned long dhcp_leasetime = 0;  IPaddr_t NetDHCPServerIP = 0; @@ -76,12 +76,12 @@ static char *dhcpmsg2str(int type)  }  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_VENDOREX) +#if defined(CONFIG_BOOTP_VENDOREX)  extern u8 *dhcp_vendorex_prep (u8 *e); /*rtn new e after add own opts. */  extern u8 *dhcp_vendorex_proc (u8 *e); /*rtn next e if mine,else NULL  */  #endif -#endif	/* CFG_CMD_DHCP */ +#endif  static int BootpCheckPkt(uchar *pkt, unsigned dest, unsigned src, unsigned len)  { @@ -120,10 +120,12 @@ static void BootpCopyNetParams(Bootp_t *bp)  	IPaddr_t tmp_ip;  	NetCopyIP(&NetOurIP, &bp->bp_yiaddr); +#if !defined(CONFIG_BOOTP_SERVERIP)  	NetCopyIP(&tmp_ip, &bp->bp_siaddr);  	if (tmp_ip != 0)  		NetCopyIP(&NetServerIP, &bp->bp_siaddr);  	memcpy (NetServerEther, ((Ethernet_t *)NetRxPkt)->et_src, 6); +#endif  	if (strlen(bp->bp_file) > 0)  		copy_filename (BootFile, bp->bp_file, sizeof(BootFile)); @@ -148,7 +150,7 @@ static int truncate_sz (const char *name, int maxlen, int curlen)  	return (curlen);  } -#if !(CONFIG_COMMANDS & CFG_CMD_DHCP) +#if !defined(CONFIG_CMD_DHCP)  static void BootpVendorFieldProcess (u8 * ext)  { @@ -181,7 +183,7 @@ static void BootpVendorFieldProcess (u8 * ext)  		if (NetOurDNSIP == 0) {  			NetCopyIP (&NetOurDNSIP, (IPaddr_t *) (ext + 2));  		} -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2) +#if defined(CONFIG_BOOTP_DNS2)  		if ((NetOurDNS2IP == 0) && (size > 4)) {  			NetCopyIP (&NetOurDNS2IP, (IPaddr_t *) (ext + 2 + 4));  		} @@ -344,7 +346,7 @@ BootpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len)  			 */  			NetState = NETLOOP_SUCCESS;  			return; -#if (CONFIG_COMMANDS & CFG_CMD_NFS) +#if defined(CONFIG_CMD_NFS)  		} else if (strcmp(s, "NFS") == 0) {  			/*  			 * Use NFS to load the bootfile. @@ -357,7 +359,7 @@ BootpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len)  	TftpStart();  } -#endif	/* !CFG_CMD_DHCP */ +#endif  /*   *	Timeout on BOOTP/DHCP request. @@ -377,16 +379,16 @@ BootpTimeout(void)  /*   *	Initialize BOOTP extension fields in the request.   */ -#if (CONFIG_COMMANDS & CFG_CMD_DHCP) +#if defined(CONFIG_CMD_DHCP)  static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t RequestedIP)  {  	u8 *start = e;  	u8 *cnt; -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_VENDOREX) +#if defined(CONFIG_BOOTP_VENDOREX)  	u8 *x;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SEND_HOSTNAME) +#if defined(CONFIG_BOOTP_SEND_HOSTNAME)  	char *hostname;  #endif @@ -425,7 +427,7 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  		*e++ = tmp >> 8;  		*e++ = tmp & 0xff;  	} -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SEND_HOSTNAME) +#if defined(CONFIG_BOOTP_SEND_HOSTNAME)  	if ((hostname = getenv ("hostname"))) {  		int hostnamelen = strlen (hostname); @@ -436,7 +438,7 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  	}  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_VENDOREX) +#if defined(CONFIG_BOOTP_VENDOREX)  	if ((x = dhcp_vendorex_prep (e)))  		return x - start;  #endif @@ -444,39 +446,39 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  	*e++ = 55;		/* Parameter Request List */  	 cnt = e++;		/* Pointer to count of requested items */  	*cnt = 0; -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SUBNETMASK) +#if defined(CONFIG_BOOTP_SUBNETMASK)  	*e++  = 1;		/* Subnet Mask */  	*cnt += 1;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_TIMEOFFSET) +#if defined(CONFIG_BOOTP_TIMEOFFSET)  	*e++  = 2;  	*cnt += 1;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_GATEWAY) +#if defined(CONFIG_BOOTP_GATEWAY)  	*e++  = 3;		/* Router Option */  	*cnt += 1;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS) +#if defined(CONFIG_BOOTP_DNS)  	*e++  = 6;		/* DNS Server(s) */  	*cnt += 1;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_HOSTNAME) +#if defined(CONFIG_BOOTP_HOSTNAME)  	*e++  = 12;		/* Hostname */  	*cnt += 1;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_BOOTFILESIZE) +#if defined(CONFIG_BOOTP_BOOTFILESIZE)  	*e++  = 13;		/* Boot File Size */  	*cnt += 1;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_BOOTPATH) +#if defined(CONFIG_BOOTP_BOOTPATH)  	*e++  = 17;		/* Boot path */  	*cnt += 1;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_NISDOMAIN) +#if defined(CONFIG_BOOTP_NISDOMAIN)  	*e++  = 40;		/* NIS Domain name request */  	*cnt += 1;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_NTPSERVER) +#if defined(CONFIG_BOOTP_NTPSERVER)  	*e++  = 42;  	*cnt += 1;  #endif @@ -491,9 +493,9 @@ static int DhcpExtended (u8 * e, int message_type, IPaddr_t ServerID, IPaddr_t R  	return e - start;  } -#else	/* CFG_CMD_DHCP */ +#else  /* - *	Warning: no field size check - change CONFIG_BOOTP_MASK at your own risk! + *	Warning: no field size check - change CONFIG_BOOTP_* at your own risk!   */  static int BootpExtended (u8 * e)  { @@ -504,7 +506,7 @@ static int BootpExtended (u8 * e)  	*e++ = 83;  	*e++ = 99; -#if (CONFIG_COMMANDS & CFG_CMD_DHCP) +#if defined(CONFIG_CMD_DHCP)  	*e++ = 53;		/* DHCP Message Type */  	*e++ = 1;  	*e++ = DHCP_DISCOVER; @@ -513,45 +515,45 @@ static int BootpExtended (u8 * e)  	*e++ = 2;  	*e++ = (576 - 312 + OPT_SIZE) >> 16;  	*e++ = (576 - 312 + OPT_SIZE) & 0xff; -#endif /* CFG_CMD_DHCP */ +#endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_SUBNETMASK) +#if defined(CONFIG_BOOTP_SUBNETMASK)  	*e++ = 1;		/* Subnet mask request */  	*e++ = 4;  	e   += 4;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_GATEWAY) +#if defined(CONFIG_BOOTP_GATEWAY)  	*e++ = 3;		/* Default gateway request */  	*e++ = 4;  	e   += 4;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS) +#if defined(CONFIG_BOOTP_DNS)  	*e++ = 6;		/* Domain Name Server */  	*e++ = 4;  	e   += 4;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_HOSTNAME) +#if defined(CONFIG_BOOTP_HOSTNAME)  	*e++ = 12;		/* Host name request */  	*e++ = 32;  	e   += 32;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_BOOTFILESIZE) +#if defined(CONFIG_BOOTP_BOOTFILESIZE)  	*e++ = 13;		/* Boot file size */  	*e++ = 2;  	e   += 2;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_BOOTPATH) +#if defined(CONFIG_BOOTP_BOOTPATH)  	*e++ = 17;		/* Boot path */  	*e++ = 32;  	e   += 32;  #endif -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_NISDOMAIN) +#if defined(CONFIG_BOOTP_NISDOMAIN)  	*e++ = 40;		/* NIS Domain name request */  	*e++ = 32;  	e   += 32; @@ -561,7 +563,7 @@ static int BootpExtended (u8 * e)  	return e - start;  } -#endif	/* CFG_CMD_DHCP */ +#endif  void  BootpRequest (void) @@ -570,7 +572,7 @@ BootpRequest (void)  	Bootp_t *bp;  	int ext_len, pktlen, iplen; -#if (CONFIG_COMMANDS & CFG_CMD_DHCP) +#if defined(CONFIG_CMD_DHCP)  	dhcp_state = INIT;  #endif @@ -678,11 +680,11 @@ BootpRequest (void)  	copy_filename (bp->bp_file, BootFile, sizeof(bp->bp_file));  	/* Request additional information from the BOOTP/DHCP server */ -#if (CONFIG_COMMANDS & CFG_CMD_DHCP) +#if defined(CONFIG_CMD_DHCP)  	ext_len = DhcpExtended((u8 *)bp->bp_vend, DHCP_DISCOVER, 0, 0);  #else  	ext_len = BootpExtended((u8 *)bp->bp_vend); -#endif	/* CFG_CMD_DHCP */ +#endif  	/*  	 *	Bootp ID is the lower 4 bytes of our ethernet address @@ -705,16 +707,16 @@ BootpRequest (void)  	NetSetIP(iphdr, 0xFFFFFFFFL, PORT_BOOTPS, PORT_BOOTPC, iplen);  	NetSetTimeout(SELECT_TIMEOUT * CFG_HZ, BootpTimeout); -#if (CONFIG_COMMANDS & CFG_CMD_DHCP) +#if defined(CONFIG_CMD_DHCP)  	dhcp_state = SELECTING;  	NetSetHandler(DhcpHandler);  #else  	NetSetHandler(BootpHandler); -#endif	/* CFG_CMD_DHCP */ +#endif  	NetSendPacket(NetTxPacket, pktlen);  } -#if (CONFIG_COMMANDS & CFG_CMD_DHCP) +#if defined(CONFIG_CMD_DHCP)  static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp)  {  	uchar *end = popt + BOOTP_HDR_SIZE; @@ -726,7 +728,7 @@ static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp)  		case 1:  			NetCopyIP (&NetOurSubnetMask, (popt + 2));  			break; -#if (CONFIG_COMMANDS & CFG_CMD_SNTP) && (CONFIG_BOOTP_MASK & CONFIG_BOOTP_TIMEOFFSET) +#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_TIMEOFFSET)  		case 2:		/* Time offset	*/  			NetCopyLong (&NetTimeOffset, (ulong *) (popt + 2));  			NetTimeOffset = ntohl (NetTimeOffset); @@ -737,7 +739,7 @@ static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp)  			break;  		case 6:  			NetCopyIP (&NetOurDNSIP, (popt + 2)); -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_DNS2) +#if defined(CONFIG_BOOTP_DNS2)  			if (*(popt + 1) > 4) {  				NetCopyIP (&NetOurDNS2IP, (popt + 2 + 4));  			} @@ -755,7 +757,7 @@ static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp)  			memcpy (&NetOurRootPath, popt + 2, size);  			NetOurRootPath[size] = 0;  			break; -#if (CONFIG_COMMANDS & CFG_CMD_SNTP) && (CONFIG_BOOTP_MASK & CONFIG_BOOTP_NTPSERVER) +#if defined(CONFIG_CMD_SNTP) && defined(CONFIG_BOOTP_NTPSERVER)  		case 42:	/* NTP server IP */  			NetCopyIP (&NetNtpServerIP, (popt + 2));  			break; @@ -801,7 +803,7 @@ static void DhcpOptionsProcess (uchar * popt, Bootp_t *bp)  			}  			break;  		default: -#if (CONFIG_BOOTP_MASK & CONFIG_BOOTP_VENDOREX) +#if defined(CONFIG_BOOTP_VENDOREX)  			if (dhcp_vendorex_proc (popt))  				break;  #endif @@ -950,7 +952,7 @@ DhcpHandler(uchar * pkt, unsigned dest, unsigned src, unsigned len)  					 */  					NetState = NETLOOP_SUCCESS;  					return; -#if (CONFIG_COMMANDS & CFG_CMD_NFS) +#if defined(CONFIG_CMD_NFS)  				} else if (strcmp(s, "NFS") == 0) {  					/*  					 * Use NFS to load the bootfile. @@ -975,6 +977,6 @@ void DhcpRequest(void)  {  	BootpRequest();  } -#endif	/* CFG_CMD_DHCP */ +#endif -#endif /* CFG_CMD_NET */ +#endif |