Skip to content

Version 0.3.4

Pre-release
Pre-release
Compare
Choose a tag to compare
@neilalexander neilalexander released this 12 Mar 10:02
· 1349 commits to master since this release
43643e0

Added

  • Support for multiple listeners (although currently only TCP listeners are supported)
  • New multicast behaviour where each multicast interface is given it's own link-local listener and does not depend on the Listen configuration
  • Blocking detection in the switch to avoid parenting a blocked peer
  • Support for adding and removing listeners and multicast interfaces when reloading configuration during runtime
  • Yggdrasil will now attempt to clean up UNIX admin sockets on startup if left behind by a previous crash
  • Admin socket getTunnelRouting and setTunnelRouting calls for enabling and disabling crypto-key routing during runtime
  • On macOS, Yggdrasil will now try to wake up AWDL on start-up when awdl0 is a configured multicast interface, to keep it awake after system sleep, and to stop waking it when no longer needed
  • Added LinkLocalTCPPort option for controlling the port number that link-local TCP listeners will listen on by default when setting up MulticastInterfaces (a node restart is currently required for changes to LinkLocalTCPPort to take effect - it cannot be updated by reloading config during runtime)

Changed

  • The Listen configuration statement is now an array instead of a string
  • The Listen configuration statement should now conform to the same formatting as peers with the protocol prefix, e.g. tcp://[::]:0
  • Session workers are now non-blocking
  • Multicast interval is now fixed at every 15 seconds and network interfaces are reevaluated for eligibility on each interval (where before the interval depended upon the number of configured multicast interfaces and evaluation only took place at startup)
  • Dead connections are now closed in the link handler as opposed to the switch
  • Peer forwarding is now prioritised instead of randomised

Fixed

  • Admin socket getTunTap call now returns properly instead of claiming no interface is enabled in all cases
  • Handling of getRoutes etc in yggdrasilctl is now working
  • Local interface names are no longer leaked in multicast packets
  • Link-local TCP connections, particularly those initiated because of multicast beacons, are now always correctly scoped for the target interface
  • Yggdrasil now correctly responds to multicast interfaces going up and down during runtime