@(#)$Id: NEWS,v 1.20 2014/01/27 06:16:42 michaels Exp $

(NOTE: The contents of this file is not updated for pre-releases.)

***
***  Monday, January 27, 2014 -- Barefoot v1.4.1
***

 o Older syntax for setting the socket buffer sizes via
   socket.recvbuf.udp, socket.sendbuf.udp, socket.recvbuf.tcp and
   socket.sendbuf.tcp options have been deprecated and replaced with
   the more general API for setting socket options.

   "socket.recvbuf.udp" can now be set by "<interface-side>.udp.so_rcvbuf"
   "socket.sendbuf.udp" can now be set by "<interface-side>.udp.so_sndbuf"
   "socket.recvbuf.tcp" can now be set by "<interface-side>.tcp.so_rcvbuf"
   "socket.sendbuf.tcp" can now be set by "<interface-side>.tcp.so_sndbuf"

   <interface-side> refers to either "internal", for Dante's internal
   interface(s), or "external", for Dante's external interface(s).

 o The --disable-libwrap option has been renamed --without-libwrap.

 o IPv6 is now supported in the server.

   Standard IPv6 address syntax is used for addresses, with the addition
   of the special address "0/0" used for matching both all IPv4 and
   all IPv6 addresses.

 o New "monitor" object added.  Syntax is similar to rules and routes,
   but instead of applying to individual sessions, it applies to all
   sessions currently matching the addresses to monitor.

   This can be used for monitoring network anomalies related to too
   little data being transferred or too many disconnects occurring,
   triggering alarms if detected.

 o Possibility to configure system errors and DNS-errors for
   special logging in certain cases (when connecting and performing
   hostname resolving).

 o More aggressive regarding how many processes to fork when starting
   and how many processes to reserve for future clients.

 o Added new log keyword: "tcpinfo".  Used to report more extensive
   statistics about sessions, including TCP_INFO on supported platforms.

 o SIGINFO/SIGUSR1 output is now logged at level "info" instead of level
   "debug".

 o SIGHUP code rewritten.  Should function considerably better in
   environments were SIGHUP is, for whatever reason, sent an excessive
   amount of times every second.

 o Default for the maximum number of clients an i/o process can handle has
   been increased from 8 to 32.

 o Improved UDP compatibility by sending appropriate ICMP unreachable
   errors to clients and targets, if running with the appropriate
   privileges (typically, root is required for this).

   Makes it possible for a client or target to be notified that a UDP
   packet it wanted the Dante server to forward was not forwarded.

 o Reduction in memory consumption at the expense of allocating extra
   memory dynamically in the very rare, perhaps non-existing, cases
   where the extra memory is needed.

 o The default timeout for TCP i/o (timeout.io.tcp) has been changed from
   84000 to 0.  0 means use the kernels default, which in most cases will
   mean no timeout.  See UPGRADE for more information.

 o The session module has been merged with the mainstream Dante code,
   and has also been extended to support the following new features:
     - connection throttling (number of new sessions accepted per second).
     - state-keys.
       Two state keys are currently supported:
         - per-IP address.
         - per-hostid (hostid is supported on certain platforms, with
                       certain kernel patches, with certain clients).

   The syntax has also changed (see UPGRADE).
   See the manual for more information about the new features.

 o Code used for finding the correct outgoing address to bind when
   external.rotation is set to "route" replaced with much simpler,
   but hopefully equally (or better) functioning code.
   Idea taken from Quagga.

***
***  Wednesday, May 16, 2012 -- Barefoot v1.4.0
***

 o Barefootd version numbers now follow those of Dante (the same codebase
   is used in both programs).

 o Three new modules are now available for the Barefoot server:
      - The Session module gives control over how many sessions different
        clients can create.

      - The Redirect modules gives control over what addresses and
        port ranges the Barefoot server will use on behalf of clients
        for outgoing connections.

      - The Bandwidth module gives control over how much bandwidth the
        Barefoot server will use on behalf of clients.

   See the page "http://www.inet.no/barefoot/module.html"
   for more information about modules.
   Note that modules need to be purchased separately.

 o Non-IPv4 target addresses where not handled correctly by external.rotation.
   Reported and diagnosed by Rudolf Polzer <rpolzer@one-it.de.example.com>

 o Some resource optimisations that should slightly reduce the number
   of Barefoot processes on high-load systems.

 o Errors related to the machine Barefoot is running on not having any route
   to a clients target destination are now reported as general errors with
   loglevel "warning", in addition to as part of the normal session close.

 o The --disable-libwrap option has been renamed --without-libwrap.

 o SIGINFO log information extended to include information about current
   buffering status and UDP latency.

 o Real-time scheduling priority settings and CPU affinity settings made
   available in barefootd.conf. A technical report analysing this
   functionality can be found here:
    http://www.inet.no/dante/files/dante_realtime_preview.pdf

 o General API for setting socket options on TCP/UDP sockets used by Barefoot
   made available in barefootd.conf.

***
***  Monday, May 23, 2011 -- Barefoot v1.0.0
***

 o  A port-bouncer for UNIX.
