aboutsummaryrefslogtreecommitdiff
path: root/networking/udhcp/d6_dhcpc.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/udhcp/d6_dhcpc.c')
-rw-r--r--networking/udhcp/d6_dhcpc.c14
1 files changed, 12 insertions, 2 deletions
diff --git a/networking/udhcp/d6_dhcpc.c b/networking/udhcp/d6_dhcpc.c
index 85068721a..9e3ce8b1c 100644
--- a/networking/udhcp/d6_dhcpc.c
+++ b/networking/udhcp/d6_dhcpc.c
@@ -484,8 +484,10 @@ static uint8_t *init_d6_packet(struct d6_packet *packet, char type, uint32_t xid
484 484
485static uint8_t *add_d6_client_options(uint8_t *ptr) 485static uint8_t *add_d6_client_options(uint8_t *ptr)
486{ 486{
487 struct option_set *curr;
487 uint8_t *start = ptr; 488 uint8_t *start = ptr;
488 unsigned option; 489 unsigned option;
490 uint16_t len;
489 491
490 ptr += 4; 492 ptr += 4;
491 for (option = 1; option < 256; option++) { 493 for (option = 1; option < 256; option++) {
@@ -508,7 +510,12 @@ static uint8_t *add_d6_client_options(uint8_t *ptr)
508 ptr = mempcpy(ptr, &opt_fqdn_req, sizeof(opt_fqdn_req)); 510 ptr = mempcpy(ptr, &opt_fqdn_req, sizeof(opt_fqdn_req));
509#endif 511#endif
510 /* Add -x options if any */ 512 /* Add -x options if any */
511 //... 513 curr = client_config.options;
514 while (curr) {
515 len = (curr->data[D6_OPT_LEN] << 8) | curr->data[D6_OPT_LEN + 1];
516 ptr = mempcpy(ptr, curr->data, D6_OPT_DATA + len);
517 curr = curr->next;
518 }
512 519
513 return ptr; 520 return ptr;
514} 521}
@@ -1215,7 +1222,10 @@ int udhcpc6_main(int argc UNUSED_PARAM, char **argv)
1215 } 1222 }
1216 while (list_x) { 1223 while (list_x) {
1217 char *optstr = xstrdup(llist_pop(&list_x)); 1224 char *optstr = xstrdup(llist_pop(&list_x));
1218 udhcp_str2optset(optstr, &client_config.options, d6_optflags, d6_option_strings); 1225 udhcp_str2optset(optstr, &client_config.options,
1226 d6_optflags, d6_option_strings,
1227 /*dhcpv6:*/ 1
1228 );
1219 free(optstr); 1229 free(optstr);
1220 } 1230 }
1221 1231