aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Rigby <john.rigby@linaro.org>2012-08-09 14:17:11 -0600
committerJohn Rigby <john.rigby@linaro.org>2012-08-09 15:08:27 -0600
commit2c872ca6e22ad5e5011fcd76e4293b75b37ffed5 (patch)
tree9da4079a907ca932f4d19d4babb1bbb8e4b6d1d5
parentcfb48a3a75a8860f4d004a3a3e384732b3593b99 (diff)
downloadu-boot-linaro-stable-2c872ca6e22ad5e5011fcd76e4293b75b37ffed5.tar.gz
dhcp: add default weak dhcp_vendorex_{prep,proc} functions
Signed-off-by: John Rigby <john.rigby@linaro.org>
-rw-r--r--net/bootp.c29
1 files changed, 28 insertions, 1 deletions
diff --git a/net/bootp.c b/net/bootp.c
index 9e324769d..b1b7b0c1e 100644
--- a/net/bootp.c
+++ b/net/bootp.c
@@ -68,8 +68,35 @@ static char *dhcpmsg2str(int type)
#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
+u8 *__dhcp_vendorex_prep(u8 *e)
+{
+ char *ptr;
+
+ /* DHCP vendor-class-identifier = 60 */
+ if ((ptr = getenv("dhcp_vendor-class-identifier"))) {
+ *e++ = 60;
+ *e++ = strlen(ptr);
+ while (*ptr)
+ *e++ = *ptr++;
+ }
+ /* DHCP_CLIENT_IDENTIFIER = 61 */
+ if ((ptr = getenv("dhcp_client_id"))) {
+ *e++ = 61;
+ *e++ = strlen(ptr);
+ while (*ptr)
+ *e++ = *ptr++;
+ }
+ return e;
+}
+
+u8 *__dhcp_vendorex_proc(u8 *popt)
+{
+ return NULL;
+}
+u8 *dhcp_vendorex_prep(u8 *e) __attribute__((weak, alias("__dhcp_vendorex_prep")));
+u8 *dhcp_vendorex_proc(u8 *e) __attribute__((weak, alias("__dhcp_vendorex_proc")));
+#endif
#endif
static int BootpCheckPkt(uchar *pkt, unsigned dest, unsigned src, unsigned len)