gnrc_ipv6_nib: add address from netif to address validation timer
The `addr` parameter of the NIB's `_handle_dad()` function can come from anywhere (e.g. in the fallback to classic SLAAC the destination address of the IP header is used), so putting that pointer in a timer is not a good idea. Instead we use the version of the address that is stored within the interface.
This commit is contained in:
parent
f5f8261b1c
commit
a09072c93d
@ -178,7 +178,8 @@ void _handle_dad(const ipv6_addr_t *addr)
|
|||||||
if (idx >= 0) {
|
if (idx >= 0) {
|
||||||
ipv6_addr_set_solicited_nodes(&sol_nodes, addr);
|
ipv6_addr_set_solicited_nodes(&sol_nodes, addr);
|
||||||
_snd_ns(addr, netif, &ipv6_addr_unspecified, &sol_nodes);
|
_snd_ns(addr, netif, &ipv6_addr_unspecified, &sol_nodes);
|
||||||
_evtimer_add((void *)addr, GNRC_IPV6_NIB_VALID_ADDR,
|
_evtimer_add((void *)&netif->ipv6.addrs[idx],
|
||||||
|
GNRC_IPV6_NIB_VALID_ADDR,
|
||||||
&netif->ipv6.addrs_timers[idx],
|
&netif->ipv6.addrs_timers[idx],
|
||||||
netif->ipv6.retrans_time);
|
netif->ipv6.retrans_time);
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user