API changes:
UpdateDiff.addedandUpdateDiff.removedchanged fromVec<IfIndex>toHashMap<IfIndex, Interface>so now you know all about which interfaces and addresses were removed without needing to perform your own bookkeeping.Update::addrs_added()andUpdate::addrs_removed()are new iterators over all added and removed addresses since the previous update, including interfaces that are existing, added or removed.
Fixed:
- Spurious watch updates will be avoided where IP addresses are detected in a different order.
- Linux: watch now detects IPv6 address changes.
- Windows: watch now detects interface additions/removals and lifecycle changes, not just IP address changes.
- Android: watch now fires for VPN and untrusted/restricted networks.
- macOS: IPv6 address aliases cannot accidentally inherit an IPv4 prefix length.
- Windows: fixed potential undefined behaviour from a misaligned adapter buffer, plus memory safety fixes around watcher deregistration and an initialisation race.
- Callback panics are now contained at the FFI boundary instead of unwinding across JNI/Win32.
- Android: fixed a watcher registration race.
- Docs: callback delivery thread and timing documented
- Android setup now documents passing an application context.