]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
network: stop DHCPv4 server in link_stop_clients()
authorYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 14 Oct 2020 22:56:27 +0000 (07:56 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Wed, 14 Oct 2020 22:56:30 +0000 (07:56 +0900)
Then, rename link_stop_clients() -> link_stop_engines().

src/network/networkd-link.c
src/network/networkd-link.h
src/network/networkd-manager.c

index 87ea5514b3db436b10009f8200b3532616d4e602..d0cc3aafbd2b5763f87e4aec107a72ee5b4b5296 100644 (file)
@@ -605,7 +605,7 @@ static void link_enter_unmanaged(Link *link) {
         link_dirty(link);
 }
 
-int link_stop_clients(Link *link, bool may_keep_dhcp) {
+int link_stop_engines(Link *link, bool may_keep_dhcp) {
         int r = 0, k;
 
         assert(link);
@@ -627,6 +627,10 @@ int link_stop_clients(Link *link, bool may_keep_dhcp) {
         if (k < 0)
                 r = log_link_warning_errno(link, k, "Could not stop IPv4 ACD client for DHCPv4: %m");
 
+        k = sd_dhcp_server_stop(link->dhcp_server);
+        if (k < 0)
+                r = log_link_warning_errno(link, k, "Could not stop DHCPv4 server: %m");
+
         k = sd_ipv4ll_stop(link->ipv4ll);
         if (k < 0)
                 r = log_link_warning_errno(link, k, "Could not stop IPv4 link-local: %m");
@@ -665,7 +669,7 @@ void link_enter_failed(Link *link) {
 
         link_set_state(link, LINK_STATE_FAILED);
 
-        (void) link_stop_clients(link, false);
+        (void) link_stop_engines(link, false);
 
         link_dirty(link);
 }
@@ -2080,12 +2084,10 @@ static int link_reconfigure_internal(Link *link, sd_netlink_message *m, bool for
         log_link_info(link, "Re-configuring with %s", network->filename);
 
         /* Dropping old .network file */
-        r = link_stop_clients(link, false);
+        r = link_stop_engines(link, false);
         if (r < 0)
                 return r;
 
-        (void) sd_dhcp_server_stop(link->dhcp_server);
-
         r = link_drop_config(link);
         if (r < 0)
                 return r;
@@ -2530,14 +2532,12 @@ static int link_carrier_lost(Link *link) {
         if (link->setting_mtu)
                 return 0;
 
-        r = link_stop_clients(link, false);
+        r = link_stop_engines(link, false);
         if (r < 0) {
                 link_enter_failed(link);
                 return r;
         }
 
-        (void) sd_dhcp_server_stop(link->dhcp_server);
-
         r = link_drop_config(link);
         if (r < 0)
                 return r;
index 6e435796e5f8619e46482e45908a225c9a7afba5..a7ae2645f95817461eaf74e71e581369c48bb779 100644 (file)
@@ -231,7 +231,7 @@ int link_set_mtu(Link *link, uint32_t mtu);
 
 bool link_ipv4ll_enabled(Link *link, AddressFamily mask);
 
-int link_stop_clients(Link *link, bool may_keep_dhcp);
+int link_stop_engines(Link *link, bool may_keep_dhcp);
 
 const char* link_state_to_string(LinkState s) _const_;
 LinkState link_state_from_string(const char *s) _pure_;
index 2cd68300727dcc4aeb9b34f6c9470e661b7128cc..b5aba1f1dc2f33c4d96fc5994d65e86daffbea31 100644 (file)
@@ -864,7 +864,7 @@ void manager_free(Manager *m) {
         free(m->state_file);
 
         HASHMAP_FOREACH(link, m->links)
-                (void) link_stop_clients(link, true);
+                (void) link_stop_engines(link, true);
 
         m->dhcp6_prefixes = hashmap_free_with_destructor(m->dhcp6_prefixes, dhcp6_pd_free);
         m->dhcp6_pd_prefixes = set_free_with_destructor(m->dhcp6_pd_prefixes, dhcp6_pd_free);