diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-12-09 15:23:32 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2021-12-09 15:25:19 +0900 |
commit | 20228b6d9630b953fdc0863b669dce1fad647d68 (patch) | |
tree | 2fdb3703778b64d7d147a4f8af438d99c6f530af /src | |
parent | 8f8dc32cc98386097586451fea3c4c89d033d17f (diff) | |
download | systemd-20228b6d9630b953fdc0863b669dce1fad647d68.tar.gz |
network: address: also adjust scope when address is link local address
But again only when Scope= is not explicitly specified.
Diffstat (limited to 'src')
-rw-r--r-- | src/network/networkd-address.c | 8 |
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)) |