diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 5ef38bc476..e0f3bd3b1b 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -14,6 +14,7 @@ #include "networkd-manager.h" #include "networkd-network.h" #include "networkd-queue.h" +#include "networkd-route-util.h" #include "networkd-route.h" #include "parse-util.h" #include "string-util.h" @@ -1770,21 +1771,14 @@ int config_parse_address_scope( return 0; } - if (streq(rvalue, "host")) - n->scope = RT_SCOPE_HOST; - else if (streq(rvalue, "link")) - n->scope = RT_SCOPE_LINK; - else if (streq(rvalue, "global")) - n->scope = RT_SCOPE_UNIVERSE; - else { - r = safe_atou8(rvalue , &n->scope); - if (r < 0) { - log_syntax(unit, LOG_WARNING, filename, line, r, - "Could not parse address scope \"%s\", ignoring assignment: %m", rvalue); - return 0; - } + r = route_scope_from_string(rvalue); + if (r < 0) { + log_syntax(unit, LOG_WARNING, filename, line, r, + "Could not parse address scope \"%s\", ignoring assignment: %m", rvalue); + return 0; } + n->scope = r; n->scope_set = true; TAKE_PTR(n); return 0;