From 07336a067216f3e5d7551b090c5972c120805d0e Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Fri, 28 Feb 2020 02:10:15 +0900 Subject: [PATCH] network: assume Scope=host when Address= is loopback address Fixes #14903. --- src/network/networkd-address.c | 4 ++++ src/network/networkd-address.h | 1 + 2 files changed, 5 insertions(+) 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; -- 2.25.1