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:
Martine Sophie Lenders 2019-06-18 11:45:16 +02:00 committed by Martine S. Lenders
parent f5f8261b1c
commit a09072c93d

View File

@ -178,7 +178,8 @@ void _handle_dad(const ipv6_addr_t *addr)
if (idx >= 0) {
ipv6_addr_set_solicited_nodes(&sol_nodes, addr);
_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.retrans_time);
}