Calling in{6,}_purgeaddr() is not enough to remove an address from
authormpi <mpi@openbsd.org>
Thu, 26 Jun 2014 13:08:25 +0000 (13:08 +0000)
committermpi <mpi@openbsd.org>
Thu, 26 Jun 2014 13:08:25 +0000 (13:08 +0000)
commit634210bcf14d7d7452d498f048c4816b89188dba
tree28faf59a021fdd540c3c9c22d3c95396073d388a
parentb0a9c297ce9047b600051553559dd2c78f83efb1
Calling in{6,}_purgeaddr() is not enough to remove an address from
an interface.  Two other operations are performed when issuing a
SIOCDIFADDR{_IN6,} ioctl: call the address hook and the per-driver
ioctl function.

Since carp(4) relies on an address hook to recalculate its hash, make
sure to call this hook when IFXF_NOINET6 is set or when the rdomain is
changed.

ok henning@, mikeb@
sys/net/if.c
sys/netinet/in.c
sys/netinet6/in6_ifattach.c