From: Yu Watanabe Date: Thu, 27 Feb 2020 17:10:15 +0000 (+0900) Subject: network: assume Scope=host when Address= is loopback address X-Git-Tag: v245-rc2~30 X-Git-Url: http://git-history.diyao.me/?a=commitdiff_plain;h=07336a067216f3e5d7551b090c5972c120805d0e;p=systemd%2F.git network: assume Scope=host when Address= is loopback address Fixes #14903. --- diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 59775869b6..6244f75201 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -1053,6 +1053,7 @@ int config_parse_address_scope(const char *unit, } } + n->scope_set = true; n = NULL; return 0; } @@ -1125,5 +1126,8 @@ int address_section_verify(Address *address) { address->section->filename, address->section->line); } + if (!address->scope_set && in_addr_is_localhost(address->family, &address->in_addr) > 0) + address->scope = RT_SCOPE_HOST; + return 0; } diff --git a/src/network/networkd-address.h b/src/network/networkd-address.h index 6995c5c06e..ad2412c75a 100644 --- a/src/network/networkd-address.h +++ b/src/network/networkd-address.h @@ -39,6 +39,7 @@ struct Address { union in_addr_union in_addr; union in_addr_union in_addr_peer; + bool scope_set:1; bool ip_masquerade_done:1; bool manage_temporary_address:1; bool home_address:1;