]> git.decadent.org.uk Git - odhcp6c.git/blobdiff - src/dhcpv6.c
added command line switch for strict oro
[odhcp6c.git] / src / dhcpv6.c
index dca0ed4a2ee49454b3cba7981f3ed696d63e0ace..7416f6103eac1a9cbc77023e4447231cf70c062d 100644 (file)
@@ -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;