diff options
author | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-10-13 14:53:46 +0900 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2020-10-13 20:30:35 +0900 |
commit | fe841414ef157f7f01d339c5d5730126e7b5fe0a (patch) | |
tree | bd5a4e8b2c38844ab6a8b4d2515e6ecdc3575b85 /src/network/networkd-ndisc.c | |
parent | 9b9c5fff16784b007f6ec313adafd29f4f737ab5 (diff) | |
download | systemd-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.c | 6 |
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"); |