Tags

Tags give the ability to mark specific points in history as being important
  • release-1.13.0rc2

    Unbound 1.13.0rc2 tag
    
  • release-1.13.0rc1

    Tag for Unbound 1.13.0rc1
    
  • debian/1.12.0-1_bpo10+1

    unbound Debian release 1.12.0-1~bpo10+1
    
  • debian/1.12.0-1

    unbound Debian release 1.12.0-1
    
  • upstream/1.12.0

    Upstream version 1.12.0
  • release-1.12.0

    Unbound 1.12.0
    
    This release contains the DNS Flag Day 2020 changes.  This sets the default EDNS buffer size to 1232, that should reduce fragmentation.
    https://dnsflagday.net/2020/
    
    There is inclusive language in the configuration.  There is caps-exempt, ipsecmod-allow and primary server options for auth-zones.  The older terms are accepted to keep configuration working.
    
    DNS-over-HTTPS is supported in this release.  The DoH is enabled when Unbound is compiled with the nghttp2 library, with configure --with-libnghttp2.  Then have an interface on the https port, that can be configured with the https-port option.  Also have a cert and key available with the tls-service-key and tls-service-pem options.  Further settings can be configured for the http-endpoint, http-max-streams, http-query-buffer-size, http-response-buffer-size and http-nodelay options.  The max streams sets the maximum concurrent streams, the buffer size options the number of bytes in buffers, and the nodelay option can turn on TCP_NODELAY for DNS-over-HTTPS service.  In the statistics the memory used is reported in mem.http.query_buffer and mem.http.response_buffer.  The number of queries is reported in num.query.https, they are also included in the tcp and tls counts because https uses TLS and TCP.
    
    The DLV options and code to handle DLV lookups have been removed from the code base.  The DLV repository is empty nowadays, it has been decommissioned.
    
    There is a new feature where it is possible to use interface names to bind to the IP addresses on that interface.  It pulls in the addresses at the start of the server, if the addresses change, use the existing freebind and other socket options to register for addresses before they appear, or the interface-automatic option that copies them from queries to answers with ancillary data.
    
    There is a new option for the edns-tag draft specification.  It can be enabled if you need the tentative implementation to add those tags to outgoing messages.
    
    Features
    - DNS Flag Day 2020: change edns-buffer-size default to 1232.
    - Merge PR #255: DNS-over-HTTPS support.
    - Use inclusive language in configuration
    - Merge PR #284 and Fix #246: Remove DLV entirely from Unbound.
      The DLV has been decommisioned and in unbound 1.5.4, in 2015, there
      was advise to stop using it.  The current code base does not contain
      DLV code any more.  The use of dlv options displays a warning.
    - Similar to NSD PR#113, implement that interface names can be used,
      eg. something like interface: eth0 is resolved at server start and
      uses the IP addresses for that named interface.
    - Merge PR #272: Add EDNS client tag functionality.
    - Add edns-client-tag-opcode option
    
    Bug Fixes
    - Merge PR #270 from cgzones: munin plugin: always exit 0 in autoconf
    - Merge PR #269, Fix python module len() implementations, by Torbjörn
      Lönnemark
    - Merge PR #268, draft-ietf-dnsop-serve-stale-10 has become RFC 8767 on
      March 2020, by and0x000.
    - Fix doxygen comment for no ssl for tls session ticket key callback
      routine.
    - Fix mini_event.h on OpenBSD cannot find fd_set.
    - Improve error log message when inserting rpz RR.
    - Merge PR #280, Make tvOS & watchOS checks verify truthiness as well as
      definedness, by Felipe Gasper.
    - contrib/aaaa-filter-iterator.patch file renewed diff content to
      apply cleanly to the current coderepo for the current code version.
    - Fix #287: doc typo: "Additionaly".
    - Merge (modified) PR #277, use EVP_MAC_CTX_set_params if available,
      by Vítězslav Čížek.
    - Create and init edns tags data for libunbound.
    - Fix stats double count issue (#289).
    - Fix that dnstap reconnects do not spam the log with the repeated
      attempts.  Attempts on the timer are only logged on high verbosity,
      if they produce a connection failure error.
    - Fix to apply chroot to dnstap-socket-path, if chroot is enabled.
    - Change configure to use EVP_sha256 instead of HMAC_Update for
      openssl-3.0.0.
    - Update documentation in python example code.
    - Review fix interface, doxygen and assign null in case of error free.
    - Merge PR #293: Add missing prototype.  Also refactor to use the new
      shorthand function to clean up the code.
    - Refactor to use sock_strerr shorthand function.
    - Fix #296: systemd nss-lookup.target is reached before unbound can
      successfully answer queries. Changed contrib/unbound.service.in.
    - Fix num.expired statistics output.
    - Remove x file mode on ipset/ipset.c and h files.
    - Spelling fix.
    - Introduce test for statistics.
    - Fix that prefer-ip4 and prefer-ip6 can be get and set with
      unbound-control, with libunbound and the unbound-checkconf option
      output function.
    - Merge PR #311 by luismerino: Dynlibmod leak.
    - Error message is logged for dynlibmod malloc failures.
    - iana portlist updated.
    - Fix #304: dnstap logging not recovering after dnstap process restarts
    - Fix edns-client-tags get_option typo
    - Fix #305: dnstap logging significantly affects unbound performance
      (regression in 1.11).
    - Fix #305: only wake up thread when threshold reached.
    - Fix to ifdef fptr wlist item for dnstap.
    - Fix memory leak of edns tags at libunbound context delete.
    - Fix double loopexit for unbound-dnstap-socket after sigterm.
    
  • debian/1.11.0-1_bpo10+1

    unbound Debian release 1.11.0-1~bpo10+1
    
  • debian/1.11.0-1

    unbound Debian release 1.11.0-1
    
  • upstream/1.11.0

    Upstream version 1.11.0
  • release-1.11.0

    Unbound 1.11.0
    
    This release contains a number of bug fixes.  Also new features are introduced.  The configure --with-dynlibmodule enables dynamic library support that can have code modules function like the python library scripts.  It allows to load multiple dynlib instances.  The new `include-toplevel: <file or wildcard>` configuration option allows to include a directory with config files where every config file does not modify the config section for the later files so that the include order is idempotent.  This makes it much easier to drop files into a config snippet directory in etc and manage that set of config files, without for example one config file starting a stub section and creating parse errors in another config file with server options.
    
    The `rrset-roundrobin` option is now default to yes.  This is more in line with what users expect.  The KSK-2010 has been removed from our default key set output.  The option `prefer-ip4` can be used to prefer ip4 over ip6 when reputation for the ip6 netblock is shared with other users.
    
    There is also a dnstap implementation inside Unbound.  This removes the dependency on the libfstrm library.  The protobuf library is still used.
    The fstrm protocol code resides in `dnstap/dnstap_fstrm.h` and `dnstap/dnstap_fstrm.c`. This contains a brief definition of what unbound needs.
    
    The `make unbound-dnstap-socket` builds a debug tool, unbound-dnstap-socket. It can listen, accept multiple DNSTAP streams and print information. Commandline options control it.
    
    Unbound can reconnect if the unix domain socket file socket is closed. This uses exponential backoff after which it uses a one second timer to throttle cpu down. There is also support to use TCP and TLS for connecting to the log server. There are new config options to turn them on, in the `dnstap` section in the man page and example config file. `dnstap-ip` with IP address of server for TCP or TLS use. `dnstap-tls` to turn on TLS. And `dnstap-tls-server-name`, `dnstap-tls-cert-bundle`, `dnstap-tls-client-key-file` and `dnstap-tls-client-cert-file` to configure the certificates for server authentication and client authentication, or leave at `""` to not use that.  With `dnstap-bidirectional` the frame streams can be set to bidirectional or unidirectional connection mode.
    
    Features
    - Merge #225 from akhait: KSK-2010 has been revoked. It removes the
      KSK-2010 from the default list in unbound-anchor, now that the
      revocation period is over.  KSK-2017 is the only trust anchor in
      the shipped default now.
    - Merge PR #93: Add dynamic library support.
    - Introduce 'include-toplevel:' configuration option.
    - Change default value for 'rrset-roundrobin' to yes.
    - Add SNI support on more TLS connections (fixes #193).
    - Add SNI support to unbound-anchor.
    - Merge PR #164: Framestreams, this branch implements dnstap
      connectivity in unbound. This has a number of new features.
    
      The dependency on libfstrm is removed. The fstrm protocol code
      resides in dnstap/dnstap_fstrm.h and dnstap/dnstap_fstrm.c. This
      contains a brief definition of what unbound needs.
    
      The make unbound-dnstap-socket builds a debug tool,
      unbound-dnstap-socket. It can listen, accept multiple DNSTAP
      streams and print information. Commandline options control it.
    
      Unbound can reconnect if the unix domain socket file socket is
      closed. This uses exponential backoff after which it uses a
      one second timer to throttle cpu down. There is also support
      to use TCP and TLS for connecting to the log server. There
      are new config options to turn them on, in the dnstap section
      in the man page and example config file. dnstap-ip with IP
      address of server for TCP or TLS use. dnstap-tls to turn
      on TLS. And dnstap-tls-server-name, dnstap-tls-cert-bundle,
      dnstap-tls-client-key-file and dnstap-tls-client-cert-file
      to configure the certificates for server authentication and
      client authentication, or leave at "" to not use that.
    
    - Fix #165: Add prefer-ip4: yesno config option to prefer ipv4 for
      using ipv4 filters, because the hosts ip6 netblock /64 is not owned
      by one operator, and thus reputation is shared.
    
    Bug Fixes
    - protect X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS with ifdef for
      different openssl versions.
    - Merge PR #166: Fix typo in unbound.service.in, by glitsj16.
    - Fix #169: Fix warning for daemon/remote.c output may be truncated
      from snprintf.
    - Fix #170: Fix gcc undefined sanitizer signed integer overflow
      warning in signature expiry RFC1982 serial number arithmetic.
    - Fix more undefined sanitizer issues, in respip copy_rrset null
      dname, and in the client_info_compare routine for null memcmp.
    - Merge PR #171: Add additional compilers and platforms to Travis
      testing, by noloader.
    - Merge PR #173: updated makedist.sh for config.guess and
      config.sub and sha256 digest for gpg, by noloader.
    - Merge PR #172: Add IBM s390x arch for testing, by noloader.
    - Fix #177: dnstap does not build on macOS.
    - Fix compiler warning in dns64/dns64.c
    - Merge PR #174: Add Android to Travis testing, by noloader.
    - Move android build scripts to contrib/ and allow android tests to fail.
    - Fix #175, Merge PR #176: fix link error when OpenSSL is configured
      with no-engine, thanks noloader.
    - Upgrade config.guess(2020-01-01) and config.sub(2020-01-01).
    - Merge PR #180 from noloader: Avoid calling exit in Travis script.
    - Merge PR #181 from noloader: Fix OpenSSL -pie warning on Android.
    - Update README-Travis.md (from PR #179), by Jeffrey Walton.
    - Fix PR #182 from noloader: Add iOS testing to Travis.
    - Merge PR #186, fix #183: Fix unrecognized 'echo -n' option on OS X, by
      noloader
    - Fix #188: unbound-control.c:882:6: error: 'execlp' is
      unavailable: not available on tvOS.
    - Fix #189: mini_event.h:142:17: error: field 'ev_timeout' has incomplete
      type, by noloader.
    - Add check to make sure RPZ records are subdomains of configured
      zone origin.
    - Fix #192: In the unbound-checkconf tool, the module config of
      dns64 subnetcache respip validator iterator is whitelisted, it was
      reported it seems to work.
    - Merge PR#191: Update iOS testing on Travis, by Jeffrey Walton.
    - Fix #158: open tls-session-ticket-keys as binary, for Windows. By
      Daisuke HIGASHI.
    - Merge PR#134, Allow the kernel to provide random source ports. By
      Florian Obser.
    - Log warning when using outgoing-port-permit and outgoing-port-avoid
      while explicit port randomisation is disabled.
    - Merge PR#194: Add libevent testing to Travis, by Jeffrey Walton.
    - Fix .travis.yml error, missing 'env' option.
    - Merge PR #197 from fobser: Make log_ident_revert_to_default() a
      proper prototype.
    - Merge PR #198 from fobser: Declare lz_enter_rr_into_zone()
      static, it's only used in this file.
    - Fix compile on Solaris for unbound-checkconf.
    - Fix compile of test tools without protobuf.
    - Merge PR #200 from yarikk: add ip-dscp option to specify the DSCP
      tag for outgoing packets.
    - Travis fix for ios by omitting tools from install.
    - Merge PR #201 from noloader: Fix OpenSSL cross-compaile warnings.
    - Fix RPZ concurrency issue when using auth_zone_reload.
    - Make unbound-control error returned on missing domain name more user
      friendly.
    - Merge PR #203 from noloader: Update README-Travis.md with current
      procedures.
    - Merge PR #207: Clarify if-automatic listens on 0.0.0.0 and ::
    - Merge PR #208: Fix uncached CLIENT_RESPONSE'es on stateful
      transports.
    - Merge PR #206: Redis TTL, by Talkabout.
    - More documentation for redis-expire-records option.
    - Keep track of number of timeouts. Use this counter to determine if
      capsforid fallback should be started.
    - Merge PR #214 from gearnode: unbound-control-setup recreate
      certificates.  With the -r option the certificates are created
      again, without it, only the files that do not exist are created.
    - Fix #220: auth-zone section in config may lead to segfault.
    - Fix help return code in unbound-control-setup script.
    - Fix for posix shell syntax for trap in nsd-control-setup.
    - Fix for posix shell syntax for trap in run_msg.sh test script.
    - Add doxygen documentation for DSCP.
    - Fix #222: --enable-rpath, fails to rpath python lib.
    - Fix for count of reply states in the mesh.
    - Remove unneeded was_mesh_reply check.
    - Explicitly use 'rrset-roundrobin: no' for test cases.
    - Cache ECS answers with longest scope of CNAME chain.
    - windows compile warnings removal for ip dscp option code.
    - Fix for integer overflow when printing RDF_TYPE_TIME.
    - Update contrib/aaaa-filter-iterator.patch for the recent
      generate_sub_request() change and to apply cleanly.
    - Merge PR #241 by Robert Edmonds: contrib/libunbound.pc.in: Do not use
      "Requires:".
    - Mention tls name possible when tls is enabled for stub-addr in the
      man page.
    - Fix default explanation in man page for qname-minimisation-strict.
    - Fix display of event loop method with libev.
    - iana portlist updated.
    - Move reply list clean for serve expired mesh callback to after
      the reply is sent, so that script callbacks have reply_info.
    - Also move reply list clean for mesh callbacks to the scrip callback
      can see the reply_info.
    - Fix for mesh accounting if the reply list already empty to begin
      with.
    - Fix for mesh accounting when rpz decides to drop a reply with a
      tcp stream waiting for it.
    - Review fix for number of detached states due to use of variable
      after end of loop.
    - Fix tcp req info drop due to size call into mesh accounting
      removal of mesh state during mesh send reply.
    - Fix #259: Fix unbound-checkconf does not check view existence.
      unbound-checkconf checks access-control-view, access-control-tags,
      access-control-tag-actions and access-control-tag-datas.
    - Fix offset of error printout for access-control-tag-datas.
    - Fix add missing DSA header, for compilation without deprecated
      OpenSSL APIs.
    - Fix to use SSL_CTX_set_tlsext_ticket_key_evp_cb in OpenSSL
      3.0.0-alpha4.
    - Longer keys for the test set, this avoids weak crypto errors.
    - Add bidirectional frame streams support.
    - Fix check conf test for referencing installation paths.
    - Fix unused variable warning for clang analyzer.
    - Merge PR #234 - Ensure proper alignment of cmsg buffers by Jérémie
      Courrèges-Anglas.
    - Fix PR #234 log_assert sizeof to use union buffer.
    - Fix libnettle compile for session ticket key callback function
      changes.
    - Fix lock dependency cycle in rpz zone config setup.
    - Fix streamtcp to print packet data to stdout.  This makes the
      stdout and stderr not mix together lines, when parsing its output.
    - Fix contrib/fastrpz.patch to apply cleanly.  It fixes for changes
      due to added libdynmod, but it does not compile, it conflicts with
      new rpz code.
    
    
  • debian/1.10.1-1_bpo10+1

    unbound Debian release 1.10.1-1~bpo10+1
    
  • debian/1.9.0-2+deb10u2

    unbound Debian release 1.9.0-2+deb10u2
    
  • debian/1.10.1-1

    unbound Debian release 1.10.1-1
    
  • upstream/1.10.1

    Upstream version 1.10.1
  • debian/1.10.0-1

    unbound Debian release 1.10.0-1
    
  • upstream/1.10.0

    Upstream version 1.10.0
  • release-1.10.0rc2

    b7706993 · typo fix ·
    Unbound 1.10.0rc2
    
    The release candidate 2 is there to fix unbound-checkconf from rejecting
    the configuration.
    
    Additional changes are:
    - Fix spelling in unbound.conf.5.in.
    - Stop unbound-checkconf from insisting that auth-zone and rpz
      zonefiles have to exist.  They can not exist, and download later.
    - contrib/drop2rpz: perl script that converts the Spamhaus DROP-List
      in RPZ-Format, contributed by Andreas Schulze.
    - Remove unused variable.
    - Add respip to supported module-config options in unbound-checkconf.
    
    The 1.10.0 release has RPZ support and serve stale functionality
    according to draft draft-ietf-dnsop-serve-stale-10.  And a number of
    other, smaller, features, and bug fixes.
    
    The DNS Response Policy Zones (RPZ) functionality makes it possible
    to express DNS response policies in a DNS zone. These zones can
    be loaded from file or transferred over DNS zone transfers or
    HTTP. The RPZ functionality in Unbound is implemented as specified in
    draft-vixie-dnsop-dns-rpz-00. Only the QNAME and Response IP Address
    triggers are supported. The supported RPZ actions are: NXDOMAIN, NODATA,
    PASSTHRU, DROP and Local Data.
    
    Enabling the respip module using `module-config` is required to use
    RPZ. Each RPZ zone can be configured using the `rpz` clause. RPZ clauses
    are applied in order of configuration.  Unbound can get the data from
    zone transfer, a zonefile or https url, and more options are documented
    in the man page.  A minimal RPZ configuration that will transfer the
    RPZ zone using AXFR and IXFR can look like:
    
    server:
      module-config: "respip validator iterator"
    
    rpz:
      name: "rpz.example.com" # name of the policy zone
      master: 192.0.2.0	  # address of the name server to transfer from
    
    The serve-stale functionality as described in
    draft-ietf-dnsop-serve-stale-10 is now supported in unbound.
    This allows unbound to first try and resolve a domain name before
    replying with expired data from cache.  This differs from unbound's
    initial serve-expired behavior which attempts to reply with expired
    entries from cache without waiting for the actual resolution to finish.
    Both behaviors are available and can be configured with the various
    serve-expired-* configuration options.  serve-expired-client-timeout is
    the option that enables one or the other.
    
    The DSA algorithms have been disabled by default, this is because of
    RFC 8624.
    
    There is a crash fix in the parse of text of type WKS, reported by
    X41 D-Sec.
    
    In addition, neg and key caches can be shared with multiple
    libunbound contexts, a change that assists unwind.  The
    contrib/unbound_portable.service provides a systemd start file for a
    portable setup.  The configure --with-libbsd option allows the use
    of the bsd compatibility library so that it can use the arc4random
    from it.  The stats in contrib/unbound_munin_ have num.query.tls and
    num.query.tls.resume added to them.  For unbound-control the command
    view_local_datas_remove is added that removes data from a view.
    
    Features:
    - Merge RPZ support into master. Only QNAME and Response IP triggers are
      supported.
    - Added serve-stale functionality as described in
      draft-ietf-dnsop-serve-stale-10. `serve-expired-*` options can be used
      to configure the behavior.
    - Updated cachedb to honor `serve-expired-ttl`; Fixes #107.
    - Renamed statistic `num.zero_ttl` to `num.expired` as expired replies
      come with a configurable TTL value (`serve-expired-reply-ttl`).
    - Merge #135 from Florian Obser: Use passed in neg and key cache
      if non-NULL.
    - Fix #153: Disable validation for DSA algorithms.  RFC 8624 compliance.
    - Merge PR#151: Fixes for systemd units, by Maryse47, Edmonds
      and Frzk.  Updates the unbound.service systemd file and adds a portable
      systemd service file.
    - Merge PR#154; Allow use of libbsd functions with configure option
      --with-libbsd. By Robert Edmonds and Steven Chamberlain.
    - Merge PR#148; Add some TLS stats to unbound_munin_. By Fredrik Pettai.
    - Merge PR#156 from Alexander Berkes; Added unbound-control
      view_local_datas_remove command.
    
    Bug Fixes:
    - Fix typo to let serve-expired-ttl work with ub_ctx_set_option(), by
      Florian Obser
    - Update mailing list URL.
    - Fix #140: Document slave not downloading new zonefile upon update.
    - Downgrade compat/getentropy_solaris.c to version 1.4 from OpenBSD.
      The dl_iterate_phdr() function introduced in newer versions raises
      compilation errors on solaris 10.
    - Changes to compat/getentropy_solaris.c for,
      ifdef stdint.h inclusion for older systems.  ifdef sha2.h inclusion
      for older systems.
    - Fix 'make test' to work for --disable-sha1 configure option.
    - Fix out-of-bounds null-byte write in sldns_bget_token_par while
      parsing type WKS, reported by Luis Merino from X41 D-Sec.
    - Updated sldns_bget_token_par fix for also space for the zero
      delimiter after the character.  And update for more spare space.
    - Fix #138: stop binding pidfile inside chroot dir in systemd service
      file.
    - Fix the relationship between serve-expired and prefetch options,
      patch from Saksham Manchanda from Secure64.
    - Fix unreachable code in ssl set options code.
    - Removed the dnscrypt_queries and dnscrypt_queries_chacha tests,
      because dnscrypt-proxy (2.0.36) does not support the test setup
      any more, and also the config file format does not seem to have the
      appropriate keys to recreate that setup.
    - Fix crash after reload where a stats lookup could reference old key
      cache and neg cache structures.
    - Fix for memory leak when edns subnet config options are read when
      compiled without edns subnet support.
    - Fix auth zone support for NSEC3 records without salt.
    - Merge PR#150 from Frzk: Systemd unit without chroot.  It add
      contrib/unbound_nochroot.service.in, a systemd file for use with
      chroot: "", see comments in the file, it uses systemd protections
      instead.  It was superceded by #151, the unbound_portable.service
      file.
    - Merge PR#155 from Robert Edmonds: contrib/libunbound.pc.in: Fixes
      to Libs/Requires for crypto library dependencies.
    - iana portlist updated.
    - Fix to silence the tls handshake errors for broken pipe and reset
      by peer, unless verbosity is set to 2 or higher.
    - Merge PR#147; change rfc reference for reserved top level dns names.
    - Fix #157: undefined reference to `htobe64'.
    - Fix subnet tests for disabled DSA algorithm by default.
    - Update contrib/fastrpz.patch for clean diff with current code.
    - updated .gitignore for added contrib file.
    - Add build rule for ipset to Makefile
    - Add getentropy_freebsd.o to Makefile dependencies.
    - Fix memory leak in error condition remote.c
    - Fix double free in error condition view.c
    - Fix memory leak in do_auth_zone_transfer on success
    - Stop working on socket when socket() call returns an error.
    - Check malloc return values in TLS session ticket code
    - Fix fclose on error in TLS session ticket code.
    - Add assertion to please static analyzer
    - Fixed stats when replying with cached, cname-aliased records.
    - Added missing default values for redis cachedb backend.
    - Fix num_reply_addr counting in mesh and tcp drop due to size
      after serve_stale commit.
    - Fix to create and destroy rpz_lock in auth_zones structure.
    - Fix to lock zone before adding rpz qname trigger.
    - Fix to lock and release once in mesh_serve_expired_lookup.
    - Fix to put braces around empty if body when threading is disabled.
    - Fix num_reply_states and num_detached_states counting with
      serve_expired_callback.
    - Cleaner code in mesh_serve_expired_lookup.
    - Document in unbound.conf manpage that configuration clauses can be
      repeated in the configuration file.
    - Document 'ub_result.was_ratelimited' in libunbound.
    - Fix use after free on log-identity after a reload; Fixes #163.
    - Fix with libnettle make test with dsa disabled.
    - Fix contrib/fastrpz.patch to apply cleanly.  Fix for serve-stale
      fixes, but it does not compile, conflicts with new rpz code.
    - Fix to clean memory leak of respip_addr.lock when ip_tree deleted.
    - Fix compile warning when threads disabled.
    
  • release-1.10.0rc1

    Unbound 1.10.0rc1
    
    The 1.10.0rc1 release has RPZ support and serve stale functionality
    according to draft draft-ietf-dnsop-serve-stale-10.  And a number of
    other, smaller, features, and bug fixes.
    
    The DNS Response Policy Zones (RPZ) functionality makes it possible
    to express DNS response policies in a DNS zone. These zones can
    be loaded from file or transferred over DNS zone transfers or
    HTTP. The RPZ functionality in Unbound is implemented as specified in
    draft-vixie-dnsop-dns-rpz-00. Only the QNAME and Response IP Address
    triggers are supported. The supported RPZ actions are: NXDOMAIN, NODATA,
    PASSTHRU, DROP and Local Data.
    
    Enabling the respip module using `module-config` is required to use
    RPZ. Each RPZ zone can be configured using the `rpz` clause. RPZ clauses
    are applied in order of configuration.  Unbound can get the data from
    zone transfer, a zonefile or https url, and more options are documented
    in the man page.  A minimal RPZ configuration that will transfer the
    RPZ zone using AXFR and IXFR can look like:
    
    server:
      module-config: "respip validator iterator"
    
    rpz:
      name: "rpz.example.com" # name of the policy zone
      master: 192.0.2.0	  # address of the name server to transfer from
    
    The serve-stale functionality as described in
    draft-ietf-dnsop-serve-stale-10 is now supported in unbound.
    This allows unbound to first try and resolve a domain name before
    replying with expired data from cache.  This differs from unbound's
    initial serve-expired behavior which attempts to reply with expired
    entries from cache without waiting for the actual resolution to finish.
    Both behaviors are available and can be configured with the various
    serve-expired-* configuration options.  serve-expired-client-timeout is
    the option that enables one or the other.
    
    The DSA algorithms have been disabled by default, this is because of
    RFC 8624.
    
    There is a crash fix in the parse of text of type WKS, reported by
    X41 D-Sec.
    
    In addition, neg and key caches can be shared with multiple
    libunbound contexts, a change that assists unwind.  The
    contrib/unbound_portable.service provides a systemd start file for a
    portable setup.  The configure --with-libbsd option allows the use
    of the bsd compatibility library so that it can use the arc4random
    from it.  The stats in contrib/unbound_munin_ have num.query.tls and
    num.query.tls.resume added to them.  For unbound-control the command
    view_local_datas_remove is added that removes data from a view.
    
    Features:
    - Merge RPZ support into master. Only QNAME and Response IP triggers are
      supported.
    - Added serve-stale functionality as described in
      draft-ietf-dnsop-serve-stale-10. `serve-expired-*` options can be used
      to configure the behavior.
    - Updated cachedb to honor `serve-expired-ttl`; Fixes #107.
    - Renamed statistic `num.zero_ttl` to `num.expired` as expired replies
      come with a configurable TTL value (`serve-expired-reply-ttl`).
    - Merge #135 from Florian Obser: Use passed in neg and key cache
      if non-NULL.
    - Fix #153: Disable validation for DSA algorithms.  RFC 8624 compliance.
    - Merge PR#151: Fixes for systemd units, by Maryse47, Edmonds
      and Frzk.  Updates the unbound.service systemd file and adds a portable
      systemd service file.
    - Merge PR#154; Allow use of libbsd functions with configure option
      --with-libbsd. By Robert Edmonds and Steven Chamberlain.
    - Merge PR#148; Add some TLS stats to unbound_munin_. By Fredrik Pettai.
    - Merge PR#156 from Alexander Berkes; Added unbound-control
      view_local_datas_remove command.
    
    Bug Fixes:
    - Fix typo to let serve-expired-ttl work with ub_ctx_set_option(), by
      Florian Obser
    - Update mailing list URL.
    - Fix #140: Document slave not downloading new zonefile upon update.
    - Downgrade compat/getentropy_solaris.c to version 1.4 from OpenBSD.
      The dl_iterate_phdr() function introduced in newer versions raises
      compilation errors on solaris 10.
    - Changes to compat/getentropy_solaris.c for,
      ifdef stdint.h inclusion for older systems.  ifdef sha2.h inclusion
      for older systems.
    - Fix 'make test' to work for --disable-sha1 configure option.
    - Fix out-of-bounds null-byte write in sldns_bget_token_par while
      parsing type WKS, reported by Luis Merino from X41 D-Sec.
    - Updated sldns_bget_token_par fix for also space for the zero
      delimiter after the character.  And update for more spare space.
    - Fix #138: stop binding pidfile inside chroot dir in systemd service
      file.
    - Fix the relationship between serve-expired and prefetch options,
      patch from Saksham Manchanda from Secure64.
    - Fix unreachable code in ssl set options code.
    - Removed the dnscrypt_queries and dnscrypt_queries_chacha tests,
      because dnscrypt-proxy (2.0.36) does not support the test setup
      any more, and also the config file format does not seem to have the
      appropriate keys to recreate that setup.
    - Fix crash after reload where a stats lookup could reference old key
      cache and neg cache structures.
    - Fix for memory leak when edns subnet config options are read when
      compiled without edns subnet support.
    - Fix auth zone support for NSEC3 records without salt.
    - Merge PR#150 from Frzk: Systemd unit without chroot.  It add
      contrib/unbound_nochroot.service.in, a systemd file for use with
      chroot: "", see comments in the file, it uses systemd protections
      instead.  It was superceded by #151, the unbound_portable.service
      file.
    - Merge PR#155 from Robert Edmonds: contrib/libunbound.pc.in: Fixes
      to Libs/Requires for crypto library dependencies.
    - iana portlist updated.
    - Fix to silence the tls handshake errors for broken pipe and reset
      by peer, unless verbosity is set to 2 or higher.
    - Merge PR#147; change rfc reference for reserved top level dns names.
    - Fix #157: undefined reference to `htobe64'.
    - Fix subnet tests for disabled DSA algorithm by default.
    - Update contrib/fastrpz.patch for clean diff with current code.
    - updated .gitignore for added contrib file.
    - Add build rule for ipset to Makefile
    - Add getentropy_freebsd.o to Makefile dependencies.
    - Fix memory leak in error condition remote.c
    - Fix double free in error condition view.c
    - Fix memory leak in do_auth_zone_transfer on success
    - Stop working on socket when socket() call returns an error.
    - Check malloc return values in TLS session ticket code
    - Fix fclose on error in TLS session ticket code.
    - Add assertion to please static analyzer
    - Fixed stats when replying with cached, cname-aliased records.
    - Added missing default values for redis cachedb backend.
    - Fix num_reply_addr counting in mesh and tcp drop due to size
      after serve_stale commit.
    - Fix to create and destroy rpz_lock in auth_zones structure.
    - Fix to lock zone before adding rpz qname trigger.
    - Fix to lock and release once in mesh_serve_expired_lookup.
    - Fix to put braces around empty if body when threading is disabled.
    - Fix num_reply_states and num_detached_states counting with
      serve_expired_callback.
    - Cleaner code in mesh_serve_expired_lookup.
    - Document in unbound.conf manpage that configuration clauses can be
      repeated in the configuration file.
    - Document 'ub_result.was_ratelimited' in libunbound.
    - Fix use after free on log-identity after a reload; Fixes #163.
    - Fix with libnettle make test with dsa disabled.
    - Fix contrib/fastrpz.patch to apply cleanly.  Fix for serve-stale
      fixes, but it does not compile, conflicts with new rpz code.
    - Fix to clean memory leak of respip_addr.lock when ip_tree deleted.
    - Fix compile warning when threads disabled.