From: Yu Watanabe Date: Mon, 31 Jul 2023 09:07:46 +0000 (+0900) Subject: network/address: always set IFA_ADDRESS attribute for IPv6 address on configure X-Git-Tag: v255-rc1~868^2~5 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=f35aecc4168ba99dc4319954593b2adc31c17c10;p=thirdparty%2Fsystemd.git network/address: always set IFA_ADDRESS attribute for IPv6 address on configure IPv6 address can update the peer address without removing the address. If an address have a peer, but now we want to drop the peer, we need to specify a null address in IFA_ADDRESS attribute. IPv4 address cannot update the peer address, so let's specify peer address only when necessary. --- diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index a7772a58955..2a46f051e03 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -1256,7 +1256,7 @@ static int address_configure(const Address *address, const struct ifa_cacheinfo if (r < 0) return r; - if (in_addr_is_set(address->family, &address->in_addr_peer)) { + if (address->family == AF_INET6 || in_addr_is_set(address->family, &address->in_addr_peer)) { r = netlink_message_append_in_addr_union(m, IFA_ADDRESS, address->family, &address->in_addr_peer); if (r < 0) return r;