summaryrefslogtreecommitdiff
path: root/networking/udhcp/dhcpc.c
diff options
context:
space:
mode:
authorDenys Vlasenko2011-06-04 05:07:16 +0200
committerDenys Vlasenko2011-06-04 05:07:16 +0200
commit5d3aaceb790461dca3f770483bbccd161e78a728 (patch)
tree835a7db0c575f4c1e579af5f01914f8fd7a16b08 /networking/udhcp/dhcpc.c
parentfe86d6b6361d07529288fa20aa5cab5472b64344 (diff)
downloadbusybox-5d3aaceb790461dca3f770483bbccd161e78a728.zip
busybox-5d3aaceb790461dca3f770483bbccd161e78a728.tar.gz
udhcpc: allow -O OPT take numeric params
function old new delta udhcpc_main 2623 2654 +31 Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/udhcp/dhcpc.c')
-rw-r--r--networking/udhcp/dhcpc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/networking/udhcp/dhcpc.c b/networking/udhcp/dhcpc.c
index 510c3a1..5d3291b 100644
--- a/networking/udhcp/dhcpc.c
+++ b/networking/udhcp/dhcpc.c
@@ -1134,8 +1134,11 @@ int udhcpc_main(int argc UNUSED_PARAM, char **argv)
client_config.no_default_options = 1;
while (list_O) {
char *optstr = llist_pop(&list_O);
- unsigned n = udhcp_option_idx(optstr);
- n = dhcp_optflags[n].code;
+ unsigned n = bb_strtou(optstr, NULL, 0);
+ if (errno || n > 254) {
+ n = udhcp_option_idx(optstr);
+ n = dhcp_optflags[n].code;
+ }
client_config.opt_mask[n >> 3] |= 1 << (n & 7);
}
while (list_x) {