summaryrefslogtreecommitdiff
path: root/src/network/networkd-ndisc.c
diff options
context:
space:
mode:
authorYu Watanabe <watanabe.yu+github@gmail.com>2020-10-13 14:53:46 +0900
committerYu Watanabe <watanabe.yu+github@gmail.com>2020-10-13 20:30:35 +0900
commitfe841414ef157f7f01d339c5d5730126e7b5fe0a (patch)
treebd5a4e8b2c38844ab6a8b4d2515e6ecdc3575b85 /src/network/networkd-ndisc.c
parent9b9c5fff16784b007f6ec313adafd29f4f737ab5 (diff)
downloadsystemd-fe841414ef157f7f01d339c5d5730126e7b5fe0a.tar.gz
network: read peer address, label, broadcast from rtnl message
Then, Address objects in Network and Link can be easily compared by address_equal().
Diffstat (limited to 'src/network/networkd-ndisc.c')
-rw-r--r--src/network/networkd-ndisc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/network/networkd-ndisc.c b/src/network/networkd-ndisc.c
index d0e426f231..c67dd7d88e 100644
--- a/src/network/networkd-ndisc.c
+++ b/src/network/networkd-ndisc.c
@@ -725,8 +725,10 @@ static int ndisc_router_process_autonomous_prefix(Link *link, sd_ndisc_router *r
SET_FOREACH(a, addresses) {
Address *existing_address;
+ address->in_addr.in6 = *a;
+
/* see RFC4862 section 5.5.3.e */
- r = address_get(link, AF_INET6, (union in_addr_union *) a, prefixlen, &existing_address);
+ r = address_get(link, address, &existing_address);
if (r > 0) {
lifetime_remaining = existing_address->cinfo.tstamp / 100 + existing_address->cinfo.ifa_valid - time_now / USEC_PER_SEC;
if (lifetime_valid > NDISC_PREFIX_LFT_MIN || lifetime_valid > lifetime_remaining)
@@ -743,8 +745,6 @@ static int ndisc_router_process_autonomous_prefix(Link *link, sd_ndisc_router *r
if (address->cinfo.ifa_valid == 0)
continue;
- address->in_addr.in6 = *a;
-
r = ndisc_address_configure(address, link, rt);
if (r < 0)
return log_link_error_errno(link, r, "Could not set SLAAC address: %m");