fastd v19
=========

This is mostly a maintenance release with few new features.

New features
~~~~~~~~~~~~

* Add support for OpenSSL 1.1+
* Allow binding to a fixed random port

  - By specifying port 0 in a *bind* directive, fastd will bind to a random port
    that is stable over the whole runtime of the fastd instance. The existing
    behaviour to use a new random port for each connection is preserved (by
    not specifying a port at all).

Removed features
~~~~~~~~~~~~~~~~

* The *secure handshakes* option is deprecated and has no effect with fastd v19;
  the old (pre-v11) insecure handshake scheme is not supported anymore
* The deprecated *xsalsa20-poly1305* method has been removed; *salsa20+poly1305*
  and various faster methods exist since fastd v11
* As libsodium removed the *aes128-ctr* cipher, fastd doesn't support it
  anymore either (for both libsodium and NaCl). For AES support, fastd must
  be built with OpenSSL.

Bugfixes
~~~~~~~~

* Fix build with custom CMAKE_MODULE_PATH (as often used by embedded build
  environments like buildroot
* Fix build on MacOS 10.12+
* Fix fast reconnect when changing networks on recent Linux kernels
* Fix segfault in *tun*/*multitap* mode with *persist interface no*
* Fix segfault in resolver with musl libc 1.1.20+
* Fix segfault when failing to create an interface on FreeBSD
* Do not print local address as a v4-mapped IPv6 address in log messages and
  script environments for sockets bound to *any*
* Fix OpenWrt initscript with multiple instances
* Fix OpenWrt initscript with multiple interfaces (*tun*/*multitap* mode)
* Fix *tap*/*multitap* modes on OpenBSD 5.9+

  - Note: This breaks support for older OpenBSD versions

Other changes
~~~~~~~~~~~~~

* Allocation functions were hardened against a number of theoretical integer
  overflow issues
* The alternative handshake format introduced in fastd v17 was removed again.
  The benefit of making endianess of the fastd packet formats more consistent
  does not outweigh the downsides of creating an incompatible fastd protocol
  version with a future release.
