X-Git-Url: https://git.decadent.org.uk/gitweb/?p=odhcp6c.git;a=blobdiff_plain;f=src%2Fdhcpv6.c;h=7416f6103eac1a9cbc77023e4447231cf70c062d;hp=dca0ed4a2ee49454b3cba7981f3ed696d63e0ace;hb=bbcc9cfa44372f58cb33d556d9b7c57f6ee96b61;hpb=62ea2821e389332d13cc05eb1ac6e77a7787f2db diff --git a/src/dhcpv6.c b/src/dhcpv6.c index dca0ed4..7416f61 100644 --- a/src/dhcpv6.c +++ b/src/dhcpv6.c @@ -106,7 +106,7 @@ static bool accept_reconfig = false; static uint8_t reconf_key[16]; -int init_dhcpv6(const char *ifname, int request_pd, int sol_timeout) +int init_dhcpv6(const char *ifname, int request_pd, bool strict_options, int sol_timeout) { request_prefix = request_pd; dhcpv6_retx[DHCPV6_MSG_SOLICIT].max_timeo = sol_timeout; @@ -158,7 +158,8 @@ int init_dhcpv6(const char *ifname, int request_pd, int sol_timeout) } // Create ORO - uint16_t oro[] = { + if (!strict_options) { + uint16_t oro[] = { htons(DHCPV6_OPT_SIP_SERVER_D), htons(DHCPV6_OPT_SIP_SERVER_A), htons(DHCPV6_OPT_DNS_SERVERS), @@ -172,8 +173,9 @@ int init_dhcpv6(const char *ifname, int request_pd, int sol_timeout) #ifdef EXT_PREFIX_CLASS htons(DHCPV6_OPT_PREFIX_CLASS), #endif - }; - odhcp6c_add_state(STATE_ORO, oro, sizeof(oro)); + }; + odhcp6c_add_state(STATE_ORO, oro, sizeof(oro)); + } // Configure IPv6-options int val = 1;