When we receive a route(4) message of RTM_DELADDR we need to check if it really has been deleted.
See https://github.com/freebsd/freebsd/blob/master/sys/netinet/raw_ip.c#L780 - if the link is taken down, we receive RTM_DELADDR but the address still exists on the interface!
Effectively, route(4) lies :/
Even if this is fixed (and it should be), we still need to check if the address exists incase it's been removed and quickly readded.
getifaddrs and sysctl are too heavy weight to check if an address exists and there is SIOCGIFAFLAG_IN6 to work out if an IPv6 address exists or not.
This patch brings parity for IPv4.