From: Christian Marangi Date: Mon, 3 Apr 2023 17:42:43 +0000 (+0200) Subject: Revert "config: recheck have_link_local on interface reload if already init" X-Git-Url: http://git.cdn.openwrt.org/?a=commitdiff_plain;h=2ea065f9e8334dc4632eb2671e5b1f5857949278;p=project%2Fodhcpd.git Revert "config: recheck have_link_local on interface reload if already init" This reverts commit 29c934d7ab98ca0b5da0e3757b885a1d3c19a2f4. Replace with a better more safe implementation. Signed-off-by: Christian Marangi --- diff --git a/src/config.c b/src/config.c index 85d77b0..6122fb1 100644 --- a/src/config.c +++ b/src/config.c @@ -594,21 +594,21 @@ int config_parse_interface(void *data, size_t len, const char *name, bool overwr if (len > 0) iface->addr6_len = len; + for (size_t i = 0; i < iface->addr6_len; i++) { + struct odhcpd_ipaddr *addr = &iface->addr6[i]; + + if (!addr->tentative) { + iface->have_link_local = true; + break; + } + } + len = netlink_get_interface_addrs(iface->ifindex, false, &iface->addr4); if (len > 0) iface->addr4_len = len; } - for (size_t i = 0; i < iface->addr6_len; i++) { - struct odhcpd_ipaddr *addr = &iface->addr6[i]; - - if (!addr->tentative) { - iface->have_link_local = true; - break; - } - } - iface->inuse = true; if ((c = tb[IFACE_ATTR_DYNAMICDHCP]))