setsockopt(sock, IPPROTO_IPV6, IPV6_V6ONLY, &val, sizeof(val));
setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val));
setsockopt(sock, IPPROTO_IPV6, IPV6_RECVPKTINFO, &val, sizeof(val));
- val = 0;
setsockopt(sock, SOL_SOCKET, SO_BINDTODEVICE, ifname, strlen(ifname));
struct sockaddr_in6 client_addr = { .sin6_family = AF_INET6,
odhcp6c_clear_state(STATE_SIP_IP);
odhcp6c_clear_state(STATE_SIP_FQDN);
odhcp6c_clear_state(STATE_AFTR_NAME);
+ odhcp6c_clear_state(STATE_CER);
}
// Parse and find all matching IAs
t1 = l_t1;
t2 = l_t2;
t3 = l_t3;
- } else {
- t1 = 600;
}
return (int)(ia_pd_entries + ia_na_entries);
size_t cand_len;
struct dhcpv6_server_cand *cand = odhcp6c_get_state(STATE_SERVER_CAND, &cand_len);
uint16_t hdr[2];
- int ret = (na_mode == IA_MODE_NONE && pd_mode == IA_MODE_NONE) ?
- DHCPV6_STATELESS : DHCPV6_STATEFUL;
+ int ret = DHCPV6_STATELESS;
// Clear lingering candidate state info
odhcp6c_clear_state(STATE_SERVER_ID);