From a28a20b50f35130aaafd646be2be1c1a8e401650 Mon Sep 17 00:00:00 2001 From: Ryan Erickson Date: Fri, 10 Sep 2021 08:44:22 -0500 Subject: [PATCH] modem: hl7800: Only reconfig DNS if iface up In the DNS work callback ensure the iface is up (on the LTE network) before trying to reconfigure the DNS resolver with the DNS address. Signed-off-by: Ryan Erickson --- drivers/modem/hl7800.c | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/drivers/modem/hl7800.c b/drivers/modem/hl7800.c index 8cacd14ed22..ab3e00821db 100644 --- a/drivers/modem/hl7800.c +++ b/drivers/modem/hl7800.c @@ -1709,14 +1709,16 @@ static void dns_work_cb(struct k_work *work) struct dns_resolve_context *dnsCtx; static const char * const dns_servers_str[] = { ictx.dns_string, NULL }; - /* set new DNS addr in DNS resolver */ - LOG_DBG("Refresh DNS resolver"); - dnsCtx = dns_resolve_get_default(); + if (ictx.iface && net_if_is_up(ictx.iface)) { + /* set new DNS addr in DNS resolver */ + LOG_DBG("Refresh DNS resolver"); + dnsCtx = dns_resolve_get_default(); - ret = dns_resolve_reconfigure(dnsCtx, dns_servers_str, NULL); - if (ret < 0) { - LOG_ERR("dns_resolve_init fail (%d)", ret); - return; + ret = dns_resolve_reconfigure(dnsCtx, dns_servers_str, NULL); + if (ret < 0) { + LOG_ERR("dns_resolve_init fail (%d)", ret); + return; + } } #endif }