1
0
mirror of https://github.com/systemd/systemd.git synced 2024-10-28 20:25:38 +03:00

networkd: fix dhcp4 link without routes not being considered ready (#8728)

The dhcp4 code sets link->dhcp4_configured when dhcp4_route_handler()
has processed the last message.

However, in case UseRoutes=no has been set in the [DHCP] section, or
in case the DHCP server simply sends no routes, link_set_dhcp_routes()
will not send any netlink messages and dhcp4_route_handler() will
therefore never be called.

This causes the link to never reach LINK_STATE_CONFIGURED, and e.g.
systemd-networkd-wait-online will not consider the link as ready.

Fix that by setting link->dhcp4_configured = true and calling
link_check_ready() in dhcp4_address_handler() in case
link_set_dhcp_routes() sent no netlink messages (dhcp4_messages is
zero).
This commit is contained in:
Anssi Hannula 2018-04-17 18:12:00 +03:00 committed by Zbigniew Jędrzejewski-Szmek
parent b1c626f67f
commit 223932c786

View File

@ -319,6 +319,11 @@ static int dhcp4_address_handler(sd_netlink *rtnl, sd_netlink_message *m,
link_set_dhcp_routes(link);
if (link->dhcp4_messages == 0) {
link->dhcp4_configured = true;
link_check_ready(link);
}
return 1;
}