The lwIP dns command only prints out cached resolved IP addresses.

When a hostname is first resolved and ERR_INPROGRESS is returned the
dns command prints out 0.0.0.0 instead of the resolved IP address.

Fix this by printing out host_ipaddr instead of the temporary ipaddr
that only is valid when ERR_OK is returned.

Fixes: 1361d9f4f00a ("lwip: dns: do not print IP address when a variable is 
specified")
Signed-off-by: Jonas Karlman <[email protected]>
---
 net/lwip/dns.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/net/lwip/dns.c b/net/lwip/dns.c
index 9964003195f8..2b2a5947a2b8 100644
--- a/net/lwip/dns.c
+++ b/net/lwip/dns.c
@@ -86,7 +86,7 @@ static int dns_loop(struct udevice *udev, const char *name, 
const char *var)
 
        if (dns_cb_arg.done && dns_cb_arg.host_ipaddr.addr != 0) {
                if (!var)
-                       printf("%s\n", ipaddr_ntoa(&ipaddr));
+                       printf("%s\n", ipaddr_ntoa(&dns_cb_arg.host_ipaddr));
                return CMD_RET_SUCCESS;
        }
 
-- 
2.52.0

Reply via email to