X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=src%2Fnetwork%2Fwait-online%2Flink.c;h=529fc9f22a27fc4f4fefc8bc6b74b81c5c549bd3;hb=db9ecf050165fd1033c6f81485917e229c4be537;hp=a13373f7d7bec16a14f0057786656ad686a98cb0;hpb=96c45cc6972bdb30306c09a69ef28da6edc85041;p=thirdparty%2Fsystemd.git diff --git a/src/network/wait-online/link.c b/src/network/wait-online/link.c index a13373f7d7b..529fc9f22a2 100644 --- a/src/network/wait-online/link.c +++ b/src/network/wait-online/link.c @@ -1,4 +1,4 @@ -/* SPDX-License-Identifier: LGPL-2.1+ */ +/* SPDX-License-Identifier: LGPL-2.1-or-later */ #include "sd-network.h" @@ -36,7 +36,7 @@ int link_new(Manager *m, Link **ret, int ifindex, const char *ifname) { .manager = m, .ifname = TAKE_PTR(n), .ifindex = ifindex, - .required_operstate = LINK_OPERSTATE_DEGRADED, + .required_operstate = LINK_OPERSTATE_RANGE_DEFAULT, }; r = hashmap_put(m->links_by_name, l->ifname, l); @@ -105,7 +105,6 @@ int link_update_rtnl(Link *l, sd_netlink_message *m) { int link_update_monitor(Link *l) { _cleanup_free_ char *operstate = NULL, *required_operstate = NULL, *state = NULL; - LinkOperationalState s; int r, ret = 0; assert(l); @@ -121,19 +120,21 @@ int link_update_monitor(Link *l) { r = sd_network_link_get_required_operstate_for_online(l->ifindex, &required_operstate); if (r < 0) ret = log_link_debug_errno(l, r, "Failed to get required operational state, ignoring: %m"); + else if (isempty(required_operstate)) + l->required_operstate = LINK_OPERSTATE_RANGE_DEFAULT; else { - s = link_operstate_from_string(required_operstate); - if (s < 0) + r = parse_operational_state_range(required_operstate, &l->required_operstate); + if (r < 0) ret = log_link_debug_errno(l, SYNTHETIC_ERRNO(EINVAL), "Failed to parse required operational state, ignoring: %m"); - else - l->required_operstate = s; } r = sd_network_link_get_operational_state(l->ifindex, &operstate); if (r < 0) ret = log_link_debug_errno(l, r, "Failed to get operational state, ignoring: %m"); else { + LinkOperationalState s; + s = link_operstate_from_string(operstate); if (s < 0) ret = log_link_debug_errno(l, SYNTHETIC_ERRNO(EINVAL),