From fd94c1301e88789578191588bb3a691a23890df4 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Tue, 7 Jul 2020 10:01:46 +0200 Subject: [PATCH] kernel-netlink: Ignore preference for temporary addresses for IPv6 VIPs They are not marked as temporary addresses so make sure we always return them whether temporary addresses are preferred as source addresses or not as we need to enumerate them when searching for addresses in traffic selectors to install routes. Fixes: 9f12b8a61c47 ("kernel-netlink: Enumerate temporary IPv6 addresses according to config") --- src/libcharon/plugins/kernel_netlink/kernel_netlink_net.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libcharon/plugins/kernel_netlink/kernel_netlink_net.c b/src/libcharon/plugins/kernel_netlink/kernel_netlink_net.c index c667ff425b..e40697214a 100644 --- a/src/libcharon/plugins/kernel_netlink/kernel_netlink_net.c +++ b/src/libcharon/plugins/kernel_netlink/kernel_netlink_net.c @@ -1547,8 +1547,8 @@ CALLBACK(filter_addresses, bool, { /* skip deprecated addresses or those with an unusable scope */ continue; } - if (addr->ip->get_family(addr->ip) == AF_INET6) - { /* handle temporary IPv6 addresses according to config */ + if (!addr->refcount && addr->ip->get_family(addr->ip) == AF_INET6) + { /* handle non-VIP temporary IPv6 addresses according to config */ bool temporary = (addr->flags & IFA_F_TEMPORARY) == IFA_F_TEMPORARY; if (data->this->prefer_temporary_addrs != temporary) { -- 2.47.2