drivers: wifi: esp_at: Bind DNS to device net interface

Make sure received DNS server information is bound to the
wifi network interface.

Signed-off-by: Jukka Rissanen <jukka.rissanen@nordicsemi.no>
This commit is contained in:
Jukka Rissanen 2025-06-12 16:53:49 +03:00 committed by Henrik Brix Andersen
commit 0e57844b2d

View file

@ -490,18 +490,23 @@ static void esp_dns_work(struct k_work *work)
struct dns_resolve_context *dnsctx;
struct sockaddr_in *addrs = data->dns_addresses;
const struct sockaddr *dns_servers[ESP_MAX_DNS + 1] = {};
int interfaces[ESP_MAX_DNS];
size_t i;
int err;
int err, ifindex;
ifindex = net_if_get_by_ifindex(data->net_iface);
for (i = 0; i < ESP_MAX_DNS; i++) {
if (!addrs[i].sin_addr.s_addr) {
break;
}
dns_servers[i] = (struct sockaddr *) &addrs[i];
interfaces[i] = ifindex;
}
dnsctx = dns_resolve_get_default();
err = dns_resolve_reconfigure(dnsctx, NULL, dns_servers);
err = dns_resolve_reconfigure_with_interfaces(dnsctx, NULL, dns_servers,
interfaces);
if (err) {
LOG_ERR("Could not set DNS servers: %d", err);
}