On 5/29/25 23:49, Tim Harvey wrote:
> move the dns init including setting the dns servers from env vars to a
> common function as other commands that support hostname lookups will
> need this.
> 
> Signed-off-by: Tim Harvey <thar...@gateworks.com>
> ---
>  include/net-lwip.h  |  1 +
>  net/lwip/dns.c      | 20 +-------------------
>  net/lwip/net-lwip.c | 30 ++++++++++++++++++++++++++++++
>  3 files changed, 32 insertions(+), 19 deletions(-)
> 
> diff --git a/include/net-lwip.h b/include/net-lwip.h
> index b762956e8fda..6b5eb1990fbf 100644
> --- a/include/net-lwip.h
> +++ b/include/net-lwip.h
> @@ -17,6 +17,7 @@ static inline int eth_is_on_demand_init(void)
>  
>  int eth_init_state_only(void); /* Set active state */
>  
> +int net_lwip_dns_init(void);
>  int net_lwip_eth_start(void);
>  struct netif *net_lwip_new_netif(struct udevice *udev);
>  struct netif *net_lwip_new_netif_noip(struct udevice *udev);
> diff --git a/net/lwip/dns.c b/net/lwip/dns.c
> index 19172ac959ac..ff1903f7191a 100644
> --- a/net/lwip/dns.c
> +++ b/net/lwip/dns.c
> @@ -44,12 +44,9 @@ static void dns_cb(const char *name, const ip_addr_t 
> *ipaddr, void *arg)
>  static int dns_loop(struct udevice *udev, const char *name, const char *var)
>  {
>       struct dns_cb_arg dns_cb_arg = { };
> -     bool has_server = false;
>       struct netif *netif;
>       ip_addr_t ipaddr;
> -     ip_addr_t ns;
>       ulong start;
> -     char *nsenv;
>       int ret;
>  
>       dns_cb_arg.var = var;
> @@ -58,22 +55,7 @@ static int dns_loop(struct udevice *udev, const char 
> *name, const char *var)
>       if (!netif)
>               return CMD_RET_FAILURE;
>  
> -     dns_init();
> -
> -     nsenv = env_get("dnsip");
> -     if (nsenv && ipaddr_aton(nsenv, &ns)) {
> -             dns_setserver(0, &ns);
> -             has_server = true;
> -     }
> -
> -     nsenv = env_get("dnsip2");
> -     if (nsenv && ipaddr_aton(nsenv, &ns)) {
> -             dns_setserver(1, &ns);
> -             has_server = true;
> -     }
> -
> -     if (!has_server) {
> -             log_err("No valid name server (dnsip/dnsip2)\n");
> +     if (net_lwip_dns_init()) {
>               net_lwip_remove_netif(netif);
>               return CMD_RET_FAILURE;
>       }
> diff --git a/net/lwip/net-lwip.c b/net/lwip/net-lwip.c
> index e8d4cc542ed8..23dccfef8993 100644
> --- a/net/lwip/net-lwip.c
> +++ b/net/lwip/net-lwip.c
> @@ -7,6 +7,7 @@
>  #include <dm/uclass.h>
>  #include <hexdump.h>
>  #include <lwip/ip4_addr.h>
> +#include <lwip/dns.h>
>  #include <lwip/err.h>
>  #include <lwip/netif.h>
>  #include <lwip/pbuf.h>
> @@ -139,6 +140,35 @@ static int get_udev_ipv4_info(struct udevice *dev, 
> ip4_addr_t *ip,
>       return 0;
>  }
>  
> +/*
> + * Initialize DNS via env
> + */
> +int net_lwip_dns_init(void)
> +{
> +     bool has_server = false;
> +     ip_addr_t ns;
> +     char *nsenv;
> +
> +     nsenv = env_get("dnsip");
> +     if (nsenv && ipaddr_aton(nsenv, &ns)) {
> +             dns_setserver(0, &ns);
> +             has_server = true;
> +     }
> +
> +     nsenv = env_get("dnsip2");
> +     if (nsenv && ipaddr_aton(nsenv, &ns)) {
> +             dns_setserver(1, &ns);
> +             has_server = true;
> +     }
> +
> +     if (!has_server) {
> +             log_err("No valid name server (dnsip/dnsip2)\n");
> +             return -EINVAL;
> +     }
> +
> +     return 0;
> +}
> +
>  /*
>   * Initialize the network stack if needed and start the current device if 
> valid
>   */

Reviewed-by: Jerome Forissier <jerome.foriss...@linaro.org>

Thanks,
-- 
Jerome

Reply via email to