Skip to content

v0.8.0

Latest

Choose a tag to compare

@thombles thombles released this 17 Aug 02:07

API changes:

  • UpdateDiff.added and UpdateDiff.removed changed from Vec<IfIndex> to HashMap<IfIndex, Interface> so now you know all about which interfaces and addresses were removed without needing to perform your own bookkeeping.
  • Update::addrs_added() and Update::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.