diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-02-28 02:10:15 +0900 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-02-28 09:53:36 +0100 |
commit | 07336a067216f3e5d7551b090c5972c120805d0e (patch) | |
tree | f867a7aeb9786ea89b810abe2231c6f2672bedd6 | |
parent | 96100b8a04fd3a904181b9b154e7691cf2303161 (diff) | |
download | systemd-07336a067216f3e5d7551b090c5972c120805d0e.tar.gz |
network: assume Scope=host when Address= is loopback address
Fixes #14903.
-rw-r--r-- | src/network/networkd-address.c | 4 | ||||
-rw-r--r-- | src/network/networkd-address.h | 1 |
2 files changed, 5 insertions, 0 deletions
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; |