- if (dns_cnt == 0 && odhcpd_get_interface_addresses(iface->ifindex, &ipaddr, 1) == 1) {
- dns_addr = &ipaddr.addr;
+ if ((dns_cnt == 0) &&
+ odhcpd_get_preferred_interface_address(iface->ifindex, &dns_addr)) {
+ dns_addr_ptr = &dns_addr;
[IOV_DEST] = {&dest, (uint8_t*)&dest.clientid_type - (uint8_t*)&dest},
[IOV_MAXRT] = {&maxrt, sizeof(maxrt)},
[IOV_DNS] = {&dns, (dns_cnt) ? sizeof(dns) : 0},
[IOV_DEST] = {&dest, (uint8_t*)&dest.clientid_type - (uint8_t*)&dest},
[IOV_MAXRT] = {&maxrt, sizeof(maxrt)},
[IOV_DNS] = {&dns, (dns_cnt) ? sizeof(dns) : 0},
[IOV_SEARCH] = {&search, (search_len) ? sizeof(search) : 0},
[IOV_SEARCH_DOMAIN] = {search_domain, search_len},
[IOV_PDBUF] = {pdbuf, 0},
[IOV_SEARCH] = {&search, (search_len) ? sizeof(search) : 0},
[IOV_SEARCH_DOMAIN] = {search_domain, search_len},
[IOV_PDBUF] = {pdbuf, 0},
} else if (opts[-4] == DHCPV6_MSG_INFORMATION_REQUEST) {
iov[IOV_REFRESH].iov_base = &refresh;
iov[IOV_REFRESH].iov_len = sizeof(refresh);
} else if (opts[-4] == DHCPV6_MSG_INFORMATION_REQUEST) {
iov[IOV_REFRESH].iov_base = &refresh;
iov[IOV_REFRESH].iov_len = sizeof(refresh);
if (IN6_IS_ADDR_UNSPECIFIED(&cerid.addr)) {
struct odhcpd_ipaddr addrs[32];
ssize_t len = odhcpd_get_interface_addresses(0, addrs,
if (IN6_IS_ADDR_UNSPECIFIED(&cerid.addr)) {
struct odhcpd_ipaddr addrs[32];
ssize_t len = odhcpd_get_interface_addresses(0, addrs,