From c91f8f90baefe7045fc46bd4e8aff01607cd5d37 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Thu, 14 Mar 2024 02:01:15 +0900 Subject: [PATCH] network: use link_start_dhcp4_server() at one more place Otherwise, even if the persistent storage is not ready, the DHCP server may be started e.g. by unplugging and plugging cable. Follow-up for 5582b36c384fc522c23ef1ac032001882d033aff. --- src/network/networkd-dhcp-server.c | 2 +- src/network/networkd-dhcp-server.h | 1 + src/network/networkd-link.c | 8 +++----- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/network/networkd-dhcp-server.c b/src/network/networkd-dhcp-server.c index 57019400e6a..eddbaad917c 100644 --- a/src/network/networkd-dhcp-server.c +++ b/src/network/networkd-dhcp-server.c @@ -144,7 +144,7 @@ int network_adjust_dhcp_server(Network *network, Set **addresses) { return 0; } -static int link_start_dhcp4_server(Link *link) { +int link_start_dhcp4_server(Link *link) { int r; assert(link); diff --git a/src/network/networkd-dhcp-server.h b/src/network/networkd-dhcp-server.h index b845a6d1c77..dbc7d95cadb 100644 --- a/src/network/networkd-dhcp-server.h +++ b/src/network/networkd-dhcp-server.h @@ -12,6 +12,7 @@ int network_adjust_dhcp_server(Network *network, Set **addresses); int link_request_dhcp_server(Link *link); +int link_start_dhcp4_server(Link *link); void manager_toggle_dhcp4_server_state(Manager *manager, bool start); CONFIG_PARSER_PROTOTYPE(config_parse_dhcp_server_relay_agent_suboption); diff --git a/src/network/networkd-link.c b/src/network/networkd-link.c index 650e94c3137..3e8aa9e37aa 100644 --- a/src/network/networkd-link.c +++ b/src/network/networkd-link.c @@ -713,11 +713,9 @@ static int link_acquire_dynamic_ipv4_conf(Link *link) { log_link_debug(link, "Acquiring IPv4 link-local address."); } - if (link->dhcp_server) { - r = sd_dhcp_server_start(link->dhcp_server); - if (r < 0) - return log_link_warning_errno(link, r, "Could not start DHCP server: %m"); - } + r = link_start_dhcp4_server(link); + if (r < 0) + return log_link_warning_errno(link, r, "Could not start DHCP server: %m"); r = ipv4acd_start(link); if (r < 0) -- 2.47.3