]> git.ipfire.org Git - thirdparty/u-boot.git/commitdiff
net: lwip: dhcp: set ntpserverip environment variable
authorJerome Forissier <jerome.forissier@linaro.org>
Mon, 22 Sep 2025 09:35:43 +0000 (11:35 +0200)
committerJerome Forissier <jerome.forissier@linaro.org>
Tue, 30 Sep 2025 10:01:36 +0000 (12:01 +0200)
Once the DHCP exchange is complete, if we have an IP address for an NTP
server, set the ntpserverip environment variable accordingly. Although
not necessary to make the sntp command use that server (since it is
known internally to the lwIP stack), this makes the behavior in line
with the legacy NET stack. This is also consistent with exporting the
DNS servers etc.

Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Suggested-by: Michal Simek <michal.simek@amd.com>
net/lwip/dhcp.c

index cbdfea3ba82aef6b613cabd8f241d687ab4514e8..531bf2c67057acd76b9a79c51fbd54045ecee28b 100644 (file)
@@ -33,6 +33,7 @@ static int dhcp_loop(struct udevice *udev)
        char ipstr[] = "ipaddr\0\0";
        char maskstr[] = "netmask\0\0";
        char gwstr[] = "gatewayip\0\0";
+       const ip_addr_t *ntpserverip;
        unsigned long start;
        struct netif *netif;
        struct dhcp *dhcp;
@@ -110,6 +111,11 @@ static int dhcp_loop(struct udevice *udev)
                strncpy(boot_file_name, dhcp->boot_file_name,
                        sizeof(boot_file_name));
 #endif
+       if (CONFIG_IS_ENABLED(CMD_SNTP)) {
+               ntpserverip = sntp_getserver(1);
+               if (ntpserverip != IP_ADDR_ANY)
+                       env_set("ntpserverip", ip4addr_ntoa(ntpserverip));
+       }
 
        printf("DHCP client bound to address %pI4 (%lu ms)\n",
               &dhcp->offered_ip_addr, get_timer(start));