mirror of
https://github.com/systemd/systemd.git
synced 2025-01-12 13:18:14 +03:00
network: call link_handle_bound_by_list() before trying to reconfigure interface
Otherwise, when an interface gained its carrier, the interface may not
have matching .network file yet, then link_reconfigure_impl() returns
zero, and link_handle_bound_by_list() is skipped.
Fixes #33837.
(cherry picked from commit 36b8ad085c
)
This commit is contained in:
parent
1cdeda986a
commit
0d98178abb
@ -1714,6 +1714,13 @@ static int link_carrier_gained(Link *link) {
|
||||
if (r < 0)
|
||||
log_link_warning_errno(link, r, "Failed to disable carrier lost timer, ignoring: %m");
|
||||
|
||||
/* Process BindCarrier= setting specified by other interfaces. This is independent of the .network
|
||||
* file assigned to this interface, but depends on .network files assigned to other interfaces.
|
||||
* Hence, this can and should be called earlier. */
|
||||
r = link_handle_bound_by_list(link);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
/* If a wireless interface was connected to an access point, and the SSID is changed (that is,
|
||||
* both previous_ssid and ssid are non-NULL), then the connected wireless network could be
|
||||
* changed. So, always reconfigure the link. Which means e.g. the DHCP client will be
|
||||
@ -1747,10 +1754,6 @@ static int link_carrier_gained(Link *link) {
|
||||
if (r != 0)
|
||||
return r;
|
||||
|
||||
r = link_handle_bound_by_list(link);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
if (link->iftype == ARPHRD_CAN)
|
||||
/* let's shortcut things for CAN which doesn't need most of what's done below. */
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user