From: Yu Watanabe Date: Sat, 2 Nov 2024 20:07:55 +0000 (+0900) Subject: network: free DHCP client and friends in link_free() X-Git-Tag: v257-rc1~38^2 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F35004%2Fhead;p=thirdparty%2Fsystemd.git network: free DHCP client and friends in link_free() No functional change, at least now. Preparation for later commits. But we are planning to extend KeepConfiguration= and also keep addresses and so on assigned by other dynamic configuration protocol like DHCPv6 or NDisc. However, when link_free_engines() is called here, acquired addresses so on by NDisc will be removed, even if link_stop_engines() handles restarting networkd or KeepConfiguration= gracefully. So, let's not free engines here, but free them later in link_free(). It is not necessary to be called here anyway. --- diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index be8826b49c5..432084038ff 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -222,7 +222,7 @@ void link_dns_settings_clear(Link *link) { link->dnssec_negative_trust_anchors = set_free_free(link->dnssec_negative_trust_anchors); } -void link_free_engines(Link *link) { +static void link_free_engines(Link *link) { if (!link) return; diff --git a/src/network/networkd-link.h b/src/network/networkd-link.h index 86aba9556bd..5efe2260845 100644 --- a/src/network/networkd-link.h +++ b/src/network/networkd-link.h @@ -253,7 +253,6 @@ int link_ipv6ll_gained(Link *link); bool link_has_ipv6_connectivity(Link *link); int link_stop_engines(Link *link, bool may_keep_dhcp); -void link_free_engines(Link *link); const char* link_state_to_string(LinkState s) _const_; LinkState link_state_from_string(const char *s) _pure_; diff --git a/src/network/networkd-manager.c b/src/network/networkd-manager.c index 6639d59b321..15a309c82f1 100644 --- a/src/network/networkd-manager.c +++ b/src/network/networkd-manager.c @@ -475,10 +475,8 @@ static int manager_stop(Manager *manager, ManagerState state) { manager->state = state; Link *link; - HASHMAP_FOREACH(link, manager->links_by_index) { + HASHMAP_FOREACH(link, manager->links_by_index) (void) link_stop_engines(link, /* may_keep_dhcp = */ true); - link_free_engines(link); - } return 0; }