[PATCH 3/6] net: lwip: dns: Call env_set() from dns loop instead of found callback

Jerome Forissier jerome.forissier at arm.com
Mon Jan 19 10:28:27 CET 2026


On 17/01/2026 01:24, Jonas Karlman wrote:
> The lwIP dns command handle env_set() calls from the found callback and
> printf() to console in the dns loop. Making it more complex than it
> needs to be.
> 
> Simplify and ensure any environment variable that is being set is the
> same value that would have been printed on console.
> 
> There should not be any intended change in behavior, besides the change
> from using ip4addr helper to using version less ipaddr helper.
> 
> Signed-off-by: Jonas Karlman <jonas at kwiboo.se>
> ---
>  net/lwip/dns.c | 15 ++++++---------
>  1 file changed, 6 insertions(+), 9 deletions(-)
> 
> diff --git a/net/lwip/dns.c b/net/lwip/dns.c
> index 2b2a5947a2b8..2222e2b0b045 100644
> --- a/net/lwip/dns.c
> +++ b/net/lwip/dns.c
> @@ -14,7 +14,6 @@
>  
>  struct dns_cb_arg {
>  	ip_addr_t host_ipaddr;
> -	const char *var;
>  	bool done;
>  };
>  
> @@ -26,7 +25,6 @@ static void do_dns_tmr(void *arg)
>  static void dns_cb(const char *name, const ip_addr_t *ipaddr, void *arg)
>  {
>  	struct dns_cb_arg *dns_cb_arg = arg;
> -	char *ipstr = ip4addr_ntoa(ipaddr);
>  
>  	dns_cb_arg->done = true;
>  
> @@ -37,21 +35,17 @@ static void dns_cb(const char *name, const ip_addr_t *ipaddr, void *arg)
>  	}
>  
>  	dns_cb_arg->host_ipaddr.addr = ipaddr->addr;
> -
> -	if (dns_cb_arg->var)
> -		env_set(dns_cb_arg->var, ipstr);
>  }
>  
>  static int dns_loop(struct udevice *udev, const char *name, const char *var)
>  {
>  	struct dns_cb_arg dns_cb_arg = { };
>  	struct netif *netif;
> +	const char *ipstr;
>  	ip_addr_t ipaddr;
>  	ulong start;
>  	int ret;
>  
> -	dns_cb_arg.var = var;
> -
>  	netif = net_lwip_new_netif(udev);
>  	if (!netif)
>  		return CMD_RET_FAILURE;
> @@ -85,8 +79,11 @@ static int dns_loop(struct udevice *udev, const char *name, const char *var)
>  	net_lwip_remove_netif(netif);
>  
>  	if (dns_cb_arg.done && dns_cb_arg.host_ipaddr.addr != 0) {
> -		if (!var)
> -			printf("%s\n", ipaddr_ntoa(&dns_cb_arg.host_ipaddr));
> +		ipstr = ipaddr_ntoa(&dns_cb_arg.host_ipaddr);
> +		if (var)
> +			env_set(var, ipstr);
> +		else
> +			printf("%s\n", ipstr);
>  		return CMD_RET_SUCCESS;
>  	}
>  

Reviewed-by: Jerome Forissier <jerome.forissier at arm.com>

Thanks,
-- 
Jerome


More information about the U-Boot mailing list