diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2015-12-11 19:44:11 +0100 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2015-12-14 11:40:40 +0100 |
commit | 802d8fdfbe0afbb76f4a6dc862d12aa422f42520 (patch) | |
tree | c02257ff12b33747b75cc408e83d0307abc8c3bc /net/dhcp.c | |
parent | d917c049721f8f4ef252dec053c27ff11e6e1e80 (diff) | |
download | barebox-802d8fdfbe0afbb76f4a6dc862d12aa422f42520.tar.gz barebox-802d8fdfbe0afbb76f4a6dc862d12aa422f42520.tar.xz |
net: dhcp: simplify dhcp_options_process
dhcp_options_handle returns the index into the dhcp_options array.
This is only to be able in the caller to print a debug message when
the index returned from dhcp_options_handle is out of bounds.
Simplify this by printing the debug message in dhcp_options_handle
and not in the caller.
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'net/dhcp.c')
-rw-r--r-- | net/dhcp.c | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/net/dhcp.c b/net/dhcp.c index fa4c4d1de1..78e5fe05ce 100644 --- a/net/dhcp.c +++ b/net/dhcp.c @@ -482,7 +482,7 @@ static int bootp_request(void) return ret; } -static int dhcp_options_handle(unsigned char option, unsigned char *popt, +static void dhcp_options_handle(unsigned char option, unsigned char *popt, int optlen, struct bootp *bp) { int i; @@ -492,13 +492,13 @@ static int dhcp_options_handle(unsigned char option, unsigned char *popt, opt = &dhcp_options[i]; if (opt->option == option) { opt->bp = bp; - opt->handle(opt, popt, optlen); - goto end; + if (opt->handle) + opt->handle(opt, popt, optlen); + return; } } -end: - return i; + debug("*** Unhandled DHCP Option in OFFER/ACK: %d\n", option); } static void dhcp_options_process(unsigned char *popt, struct bootp *bp) @@ -506,15 +506,12 @@ static void dhcp_options_process(unsigned char *popt, struct bootp *bp) unsigned char *end = popt + sizeof(*bp) + OPT_SIZE; int oplen; unsigned char option; - int i; while (popt < end && *popt != 0xff) { oplen = *(popt + 1); option = *popt; - i = dhcp_options_handle(option, popt + 2, oplen, bp); - if (i == ARRAY_SIZE(dhcp_options)) - debug("*** Unhandled DHCP Option in OFFER/ACK: %d\n", option); + dhcp_options_handle(option, popt + 2, oplen, bp); popt += oplen + 2; /* Process next option */ } |