Skip to content

Commit 81e0ce2

Browse files
jukkarrlubos
authored andcommitted
[nrf fromtree] 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 <[email protected]> (cherry picked from commit 0e57844) Signed-off-by: Robert Lubos <[email protected]>
1 parent a5bdd47 commit 81e0ce2

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

drivers/wifi/esp_at/esp.c

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -490,18 +490,23 @@ static void esp_dns_work(struct k_work *work)
490490
struct dns_resolve_context *dnsctx;
491491
struct sockaddr_in *addrs = data->dns_addresses;
492492
const struct sockaddr *dns_servers[ESP_MAX_DNS + 1] = {};
493+
int interfaces[ESP_MAX_DNS];
493494
size_t i;
494-
int err;
495+
int err, ifindex;
496+
497+
ifindex = net_if_get_by_ifindex(data->net_iface);
495498

496499
for (i = 0; i < ESP_MAX_DNS; i++) {
497500
if (!addrs[i].sin_addr.s_addr) {
498501
break;
499502
}
500503
dns_servers[i] = (struct sockaddr *) &addrs[i];
504+
interfaces[i] = ifindex;
501505
}
502506

503507
dnsctx = dns_resolve_get_default();
504-
err = dns_resolve_reconfigure(dnsctx, NULL, dns_servers);
508+
err = dns_resolve_reconfigure_with_interfaces(dnsctx, NULL, dns_servers,
509+
interfaces);
505510
if (err) {
506511
LOG_ERR("Could not set DNS servers: %d", err);
507512
}

0 commit comments

Comments
 (0)