From 49e501343274ed110f6927108794d135a1710480 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Sun, 3 Nov 2024 05:07:55 +0900 Subject: [PATCH] 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. --- src/network/networkd-link.c | 2 +- src/network/networkd-link.h | 1 - src/network/networkd-manager.c | 4 +--- 3 files changed, 2 insertions(+), 5 deletions(-) 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; } -- 2.47.3