summaryrefslogtreecommitdiff
path: root/networking/udhcp/common.c
diff options
context:
space:
mode:
authorDenys Vlasenko2021-06-02 15:51:50 +0200
committerDenys Vlasenko2021-06-02 15:51:50 +0200
commit949e9621d10faada3bb55a4aa206df44e7d39ae8 (patch)
tree63778eac77dc9b9fb6f30410a581d87f7ae2b707 /networking/udhcp/common.c
parent698cdef538f51bb85b68d591b1e42eb6b04d891c (diff)
downloadbusybox-949e9621d10faada3bb55a4aa206df44e7d39ae8.zip
busybox-949e9621d10faada3bb55a4aa206df44e7d39ae8.tar.gz
udhcpc: get rid of client_data.fqdn field
function old new delta attach_option 253 276 +23 udhcpc_main 2582 2588 +6 udhcpc6_main 2579 2571 -8 add_client_options 175 158 -17 udhcp_insert_new_option 169 138 -31 ------------------------------------------------------------------------------ (add/remove: 0/0 grow/shrink: 2/3 up/down: 29/-56) Total: -27 bytes Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'networking/udhcp/common.c')
-rw-r--r--networking/udhcp/common.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/networking/udhcp/common.c b/networking/udhcp/common.c
index 7929950..b325c41 100644
--- a/networking/udhcp/common.c
+++ b/networking/udhcp/common.c
@@ -424,7 +424,6 @@ int FAST_FUNC udhcp_str2nip(const char *str, void *arg)
void* FAST_FUNC udhcp_insert_new_option(
struct option_set **opt_list,
unsigned code,
- const void *buffer,
unsigned length,
bool dhcpv6)
{
@@ -434,17 +433,15 @@ void* FAST_FUNC udhcp_insert_new_option(
log2("attaching option %02x to list", code);
new = xmalloc(sizeof(*new));
if (!dhcpv6) {
- new->data = xmalloc(length + OPT_DATA);
+ new->data = xzalloc(length + OPT_DATA);
new->data[OPT_CODE] = code;
new->data[OPT_LEN] = length;
- memcpy(new->data + OPT_DATA, buffer, length);
} else {
- new->data = xmalloc(length + D6_OPT_DATA);
+ new->data = xzalloc(length + D6_OPT_DATA);
new->data[D6_OPT_CODE] = code >> 8;
new->data[D6_OPT_CODE + 1] = code & 0xff;
new->data[D6_OPT_LEN] = length >> 8;
new->data[D6_OPT_LEN + 1] = length & 0xff;
- memcpy(new->data + D6_OPT_DATA, buffer, length);
}
curr = opt_list;
@@ -498,7 +495,11 @@ static NOINLINE void attach_option(
existing = udhcp_find_option(*opt_list, optflag->code);
if (!existing) {
/* make a new option */
- udhcp_insert_new_option(opt_list, optflag->code, buffer, length, dhcpv6);
+ uint8_t *p = udhcp_insert_new_option(opt_list, optflag->code, length, dhcpv6);
+ if (!dhcpv6)
+ memcpy(p + OPT_DATA, buffer, length);
+ else
+ memcpy(p + D6_OPT_DATA, buffer, length);
goto ret;
}