summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2021-12-09 15:23:32 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2021-12-09 15:25:19 +0900
commit20228b6d9630b953fdc0863b669dce1fad647d68 (patch)
tree2fdb3703778b64d7d147a4f8af438d99c6f530af
parent8f8dc32cc98386097586451fea3c4c89d033d17f (diff)
downloadsystemd-20228b6d9630b953fdc0863b669dce1fad647d68.tar.gz
network: address: also adjust scope when address is link local address
But again only when Scope= is not explicitly specified.
-rw-r--r--src/network/networkd-address.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c
index f9d21af158..618c278abf 100644
--- a/src/network/networkd-address.c
+++ b/src/network/networkd-address.c
@@ -1916,8 +1916,12 @@ static int address_section_verify(Address *address) {
address->label = mfree(address->label);
}
- if (!address->scope_set && in_addr_is_localhost(address->family, &address->in_addr) > 0)
- address->scope = RT_SCOPE_HOST;
+ if (!address->scope_set) {
+ if (in_addr_is_localhost(address->family, &address->in_addr) > 0)
+ address->scope = RT_SCOPE_HOST;
+ else if (in_addr_is_link_local(address->family, &address->in_addr) > 0)
+ address->scope = RT_SCOPE_LINK;
+ }
if (address->family == AF_INET6 &&
!FLAGS_SET(address->duplicate_address_detection, ADDRESS_FAMILY_IPV6))