From: Yu Watanabe Date: Wed, 13 Mar 2024 17:01:15 +0000 (+0900) Subject: network: use link_start_dhcp4_server() at one more place X-Git-Tag: v256-rc1~523 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c91f8f90baefe7045fc46bd4e8aff01607cd5d37;p=thirdparty%2Fsystemd.git 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. --- 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)