Hi Ilya, On Tue, Jul 24, 2012 at 5:22 PM, Ilya Yanok <ilya.ya...@cogentembedded.com> wrote: > Vendor Class Identifier option is common to BOOTP and DHCP and > can be useful without PXE. So send VCI in both BOOTP and DHCP > requests if CONFIG_BOOTP_VCI_STRING is defined. > > Signed-off-by: Ilya Yanok <ilya.ya...@cogentembedded.com> > --- > > net/bootp.c | 20 +++++++++++++++----- > 1 file changed, 15 insertions(+), 5 deletions(-) > > diff --git a/net/bootp.c b/net/bootp.c > index 0f0867b..a68f914 100644 > --- a/net/bootp.c > +++ b/net/bootp.c > @@ -339,6 +339,14 @@ BootpTimeout(void) > } > } > > +#define put_vci(e, str) \ > + do { \ > + *e++ = 60; \
Please keep the comment on the magic number. > + *e++ = sizeof(str); \ Did you mean to change this from strlen() to sizeof()? These are not the same thing. > + memcpy(e, str, sizeof(str)); \ > + e += sizeof(str); \ > + } while (0) > + > /* > * Initialize BOOTP extension fields in the request. > */ > @@ -435,12 +443,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); If you aren't using this anymore, then you should remove size_t vci_strlen; from the top of the file. > - *e++ = vci_strlen; > - memcpy(e, CONFIG_BOOTP_VCI_STRING, vci_strlen); > - e += vci_strlen; > +#ifdef CONFIG_BOOTP_VCI_STRING > + put_vci(e, CONFIG_VCI_STRING); > #endif > > #if defined(CONFIG_BOOTP_VENDOREX) > @@ -527,6 +533,10 @@ static int BootpExtended(u8 *e) > *e++ = (576 - 312 + OPT_FIELD_SIZE) & 0xff; > #endif > > +#ifdef CONFIG_BOOTP_VCI_STRING > + put_vci(e, CONFIG_VCI_STRING); > +#endif > + > #if defined(CONFIG_BOOTP_SUBNETMASK) > *e++ = 1; /* Subnet mask request */ > *e++ = 4; > -- > 1.7.9.5 -Joe _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot