From: Yu Watanabe Date: Tue, 30 Nov 2021 06:52:54 +0000 (+0900) Subject: network: address: drop deprecated temporary address X-Git-Tag: v250-rc1~109 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=528da64a0c734bd45e953b5c57d82e2a727435ef;p=thirdparty%2Fsystemd.git network: address: drop deprecated temporary address Fixes #19838. --- diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 826b061f24e..f1bda88eeb2 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -1394,6 +1394,20 @@ int manager_rtnl_process_address(sd_netlink *rtnl, sd_netlink_message *message, address->scope = tmp->scope; address_set_lifetime(address, &cinfo); address_enter_configured(address); + + if (address->family == AF_INET6 && + address->source == NETWORK_CONFIG_SOURCE_FOREIGN && + FLAGS_SET(address->flags, IFA_F_SECONDARY | IFA_F_DEPRECATED)) { + + /* The temporary address became deprecated, i.e. preferred lifetime == 0. */ + log_address_debug(address, "Received deprecated", link); + r = address_remove(address); + if (r < 0) + link_enter_failed(link); + + return 0; + } + log_address_debug(address, "Received updated", link); } else { address_set_lifetime(tmp, &cinfo);