diff options
author | Tom Rini <trini@ti.com> | 2012-10-04 10:00:42 -0700 |
---|---|---|
committer | Tom Rini <trini@ti.com> | 2012-10-04 10:00:42 -0700 |
commit | 198166877768cf4d0197289a524df8a6ca0e2f19 (patch) | |
tree | d8fb2afc6d5b09ceeb4e3e62dc20b64d167ab346 /net | |
parent | 73c15c634dda388e21eaf0ebc85e324872df0d25 (diff) | |
parent | 777544085d2b417a36df50eb564bf037a044e60e (diff) | |
download | u-boot-198166877768cf4d0197289a524df8a6ca0e2f19.tar.gz |
Merge branch 'master' of git://git.denx.de/u-boot-arm
Diffstat (limited to 'net')
-rw-r--r-- | net/bootp.c | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/net/bootp.c b/net/bootp.c index 661e371063..cd5c5dd1d7 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -341,6 +341,15 @@ BootpTimeout(void) } } +#define put_vci(e, str) \ + do { \ + size_t vci_strlen = strlen(str); \ + *e++ = 60; /* Vendor Class Identifier */ \ + *e++ = vci_strlen; \ + memcpy(e, str, vci_strlen); \ + e += vci_strlen; \ + } while (0) + /* * Initialize BOOTP extension fields in the request. */ @@ -352,7 +361,6 @@ static int DhcpExtended(u8 *e, int message_type, IPaddr_t ServerID, u8 *cnt; #if defined(CONFIG_BOOTP_PXE) char *uuid; - size_t vci_strlen; u16 clientarch; #endif @@ -437,12 +445,10 @@ static int DhcpExtended(u8 *e, int message_type, IPaddr_t ServerID, printf("Invalid pxeuuid: %s\n", uuid); } } +#endif - *e++ = 60; /* Vendor Class Identifier */ - vci_strlen = strlen(CONFIG_BOOTP_VCI_STRING); - *e++ = vci_strlen; - memcpy(e, CONFIG_BOOTP_VCI_STRING, vci_strlen); - e += vci_strlen; +#ifdef CONFIG_BOOTP_VCI_STRING + put_vci(e, CONFIG_BOOTP_VCI_STRING); #endif #if defined(CONFIG_BOOTP_VENDOREX) @@ -529,6 +535,15 @@ static int BootpExtended(u8 *e) *e++ = (576 - 312 + OPT_FIELD_SIZE) & 0xff; #endif +#if defined(CONFIG_BOOTP_VCI_STRING) || \ + (defined(CONFIG_SPL_BUILD) && defined(CONFIG_SPL_NET_VCI_STRING)) +#ifdef CONFIG_SPL_BUILD + put_vci(e, CONFIG_SPL_NET_VCI_STRING); +#else + put_vci(e, CONFIG_BOOTP_VCI_STRING); +#endif +#endif + #if defined(CONFIG_BOOTP_SUBNETMASK) *e++ = 1; /* Subnet mask request */ *e++ = 4; |