News
****

Release 8.12.1
==============

   * Update 'hjson' and 'compress' dependant libraries.

   * Set 'hjson-cli' utility's version during the build process.

Release 8.12.0
==============

   * Combine all executables in single 'nncp'.  You should symlink all
     'nncp-*' commands to it.

   * Prevent path traversal during freqing and file saving.  Previously
     malicious paths in packets may request or overwrite file outside
     freq or incoming directories.

Release 8.11.0
==============

   * Fixed buildability under Go 1.22.  Now it is the minimal version.

   * Updated dependant libraries.

   * 'go.cypherpunks.ru' Go module name is changed to
     'go.cypherpunks.su', as domain will expire soon.

Release 8.10.0
==============

   * Updated dependant libraries, including Yggdrasil one (its network
     moved to v0.5).

Release 8.9.0
=============

   * 'nncp-toss' command has '-gen-ack' option.  'nncp-daemon',
     'nncp-caller', 'nncp-call' commands have '-autotoss-gen-ack'
     option.  They automatically generate ACK packets and store
     corresponding 'spool/tx/ack/' references to them, to be able to
     remove them after the transfer.

   * 'autotoss-gen-ack' appeared in call configuration.  'ack' section
     appeared in neighbour configuration.

   * 'nncp-rm' command has '-ack' option to remove packets referenced by
     stored 'spool/tx/ack/' files generated during tossing.

   * Get rid of 'redo' build system during installation, as there are
     virtually none dependencies, just only compilation of the Go code.

   * Updated some dependencies.

Release 8.8.3
=============

   * Fixed 'nncp-reass' command, that incorrectly reported about wrong
     last chunk's size if it is multiple of the chunk-size.

   * Updated dependencies.  Go 1.20+ is required now.

Release 8.8.2
=============

   * Updated Yggdrasil library, with several other ones.

Release 8.8.1
=============

   * Fixed 'nncp-daemon' failing with unauthenticated connection and
     enabled '-autotoss'.

   * Updated dependencies.

Release 8.8.0
=============

   * Fixed buildability under Go 1.19.

   * Minimal required Go version is 1.17.

   * Updated dependencies.

Release 8.7.2
=============

   * More intuitive, clear and slightly more flexible behaviour of
     'nncp-rm'.

   * 'nncp-rm' also removes corresponding 'hdr/' file for each removed
     packet.

Release 8.7.1
=============

   * 'nncp-xfer' now correctly checks for 'seen/' files for inbound
     packets.

Release 8.7.0
=============

   * 'nncp-ack' does not acknowledge ACK-packets, preventing an endless
     loop of ACKs.

   * 'nncp-ack' previously did not remove corresponding 'hdr/' files.

   * 'nncp-rm' now takes list of packet from 'stdin' when '-pkt' option
     is used.

   * 'nncp-ack' now generates list of ACK packets it created, that could
     be used as an input to 'nncp-rm' to remove outbound ACK packets.

Release 8.6.0
=============

   * 'nncp-xfer' checks if locally copied packet's checksum differs from
     the source's one.

   * 'nncp-call' has bad return code if its queues contain unfinished
     jobs.

   * 'nncp-ack' command appeared, that sends explicit packet receipt
     acknowledgement (ACK packet).  That acknowledgement deletes
     referenced packet from the outbound spool.

   * Ability to turn 'fsync' operation off using '$NNCPNOSYNC=1'
     environment variable.

   * Added various indices in documentation, that should help searching
     in it.

Release 8.5.0
=============

   * Fixed 'nncp-bundle' workability.

   * Mistakenly '-mcd-wait' option was enabled by default in
     'nncp-call'.

   * Ability to override internal default timeout for online protocol
     through '$NNCPDEADLINE' environment variable.  Can be useful for
     very high delay links.

   * NNCP builds on OpenBSD.

Release 8.4.0
=============

   * Multicast related interface names ('mcd-listen' and 'mcd-send'
     configuration options) are now regular expressions.  By default
     'nncp-cfgnew' uncomments them now with '.*' interface name.

   * 'nncp-call' command has '-mcd-wait' option to wait for multicast
     packet about node's address.

   * 'nncp-file' command skips everything that is neither regular file
     nor directory during pax-archive creation.

Release 8.3.0
=============

   * Fixed building issues on 32-bit systems.

Release 8.2.0
=============

   * Yggdrasil uses pure-Go IPv6+TCP network stack, instead of naked μTP
     transport protocol, making it able to work as an ordinary TCP
     server inside overlay network.

   * Yggdrasil's 'prv;bind1,bind2;pub...'-like configuration strings are
     replaced with URL-like ones
     ('yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB').

   * Ability to pass multicast-related parameters to Yggdrasil
     configuration.

   * 'nncp-daemon' is able to listen on both TCP and Yggdrasil-driven
     sockets simultaneously.

   * 'nncp-daemon''s listening on peering endpoint socket is optional -
     you can be reached through the peers.

Release 8.1.0
=============

   * 'nncp-cfgdir' does not require 'self' section existence in
     configuration file.

   * Ability to act as Yggdrasil network client, using online protocol
     on top of it.

Release 8.0.2
=============

   * Fixed sending ability to areas.

Release 8.0.1
=============

   * Fixed incorrect 'freq.chunked' value calculation.  If it was
     missed, then chunked transfer mode was forcefully turned on anyway.

   * Fixed incorrect full file's size calculation in '.nncp.meta'.

Release 8.0.0
=============

   * *Incompatible* encrypted packet format change: payload and pad
     sizes are sent in-bound in the encrypted stream.  That gives
     ability to streamingly create encrypted packets, without knowing
     sizes in advance, without creating temporary file or buffer data in
     memory.

   * Proper encrypted packet padding verification is done now.  This is
     not critical issue, but previously neither padding value, nor its
     size were authenticated, giving ability to iteratively strip
     trailing bytes and determine payload's size by observing the
     reaction of the encrypted packet processing.

   * 'nncp-exec' loses its '-use-tmp' option, because of
     streaming-compatible encrypted packets format.

   * 'nncp-file' and 'nncp-exec' commands have '-maxsize' option,
     limiting maximal resulting encrypted packet's maximal size
     (returning error if it is exceeded).  Could be useful, because no
     payload size could be known in advance.

Release 7.7.0
=============

   * Experimental 'kqueue' and 'inotify' based notifications support
     about spool directory changes, for reducing their often reading
     overhead.

   * '.seen' and '.hdr' files moved to 'seen/' and 'hdr/'
     subdirectories, for faster scanning of spool directories.  Current
     files migration required:

          $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm {} +

          $ find $NNCPSPOOL -type d -name rx | while read rx ; do
              cd $rx
              mkdir -p seen
              find . -type f -name "*.seen" | while read fn ; do
                  mv $fn seen/${fn%.seen}
              done
          done

          $ find $NNCPSPOOL -type d -name area | while read area ; do
              find $area -type f -name "*.seen" | while read fn ; do
                  mv $fn ${fn%.seen}
              done
          done

Release 7.6.0
=============

   * Logging may be done to specified opened file descriptor
     ('$NNCPLOG=FD:5' for example).  That is friendly to use under
     'daemontools'.

   * Added additional checks of public keys existence in configuration
     file, preventing some commands from failing.

Release 7.5.1
=============

   * NNCP builds on NetBSD.

Release 7.5.0
=============

   * 'nncp-daemon' is compatible with UCSPI-TCP interface, so log will
     contain remote side's address (when running under appropriate
     utility).  '-ucspi' option should be used instead of '-inetd'.

   * 'nncp-call' can be UCSPI-TCP client, using '-ucspi' option.

   * Do not exit if some of MCD network interfaces can not be listened -
     only warn about that.

Release 7.4.0
=============

   * Fixed simultaneous 'nncp-daemon' and 'nncp-caller' MCD work.

Release 7.3.2
=============

   * 'hjson-cli' utility builds in vendor-mode now.

Release 7.3.1
=============

   * Fixed possibly left opened file descriptor in online commands.

   * Severely decreased memory usage of MTH hashing.

Release 7.3.0
=============

   * Fixed some workability problems on 32-bit systems with big files.

   * Ability to use directory with a bunch of files as a configuration.
     'nncp-cfgdir' command appeared.

Release 7.2.1
=============

   * Small optimizations in online commands.

Release 7.2.0
=============

   * 'nncp-trns' command appeared for manual transition packets
     creation.

   * If destination node of transitional packet has non empty 'via'
     route, then do not ignore, but use it.

   * Do not relay multicast packet to area message's originator, that
     obviously has seen its own packet.

   * Much less memory usage during MTH hashing when offset is zero: when
     packet is not resumed, but for example checked with 'nncp-check'
     command.

Release 7.1.1
=============

   * Fixed failing directories 'fsync' after '.seen' file creation.

Release 7.1.0
=============

   * Multicasting areas feature appeared.  Implemented merely by an
     additional plain packet type with 'nncp-toss', 'nncp-file' and
     'nncp-exec' commands modification.

   * Fixed workability of 'nncp-file' and 'nncp-exec' commands, that use
     temporary file ('stdin' and '-use-tmp').

   * Fixed disappearing bad return code in 'nncp-exec' command.

   * Fixed invalid '.hdr' generation when transitional packets are used.

   * '-all' option appeared in 'nncp-rm' command, applying to all the
     nodes at once.

   * '-cycle' option appeared in 'nncp-check' command, looping the check
     in infinite cycle.

   * 'nncp-rm' command can take node alias name.

   * 'nncp-pkt' can parse '.hdr' files.

Release 7.0.0
=============

   * Minimal required Go version is 1.13.

   * Merkle Tree-based Hashing with BLAKE3 (MTH) is used instead of
     BLAKE2b.  Because of that, there are backward *incompatible*
     changes of encrypted files (everything laying in the spool
     directory) and '.meta' files of chunked transfer.

     Current implementation is far from being optimal: it lacks
     parallelizable calculations and has higher memory consumption:
     nearly 512 KiB for each 1 GiB of file's data.  Future performance
     and memory size optimizations should not lead to packet's format
     change.  But it is still several times faster than BLAKE2b.

   * Resumed online downloads, because of MTH, require reading only of
     the preceding part of file, not the whole one as was before.

   * 'nncp-hash' utility appeared for calculating file's MTH hash.

   * BLAKE2 KDF and XOF functions are replaced with BLAKE3 in encrypted
     packets.  Lowering number of used primitives.  Also, its encrypted
     packet's header is used as an associated data during encryption.

   * MultiCast Discovery uses ff02::4e4e:4350 address instead of
     ff02::1.

   * 'nncp-cfgenc' mistakenly asked passphrase three times during
     encryption.

   * 'nncp-stat' reports about partly downloaded packets.

   * Updated dependencies.

Release 6.6.0
=============

   * 'nncp-daemon', 'nncp-call' and 'nncp-caller' commands wait for all
     background checksummers completion after connection is finished.

   * Added possibility of address determining through multicast
     announcement in local area network, so called MCD (MultiCast
     Discovery).

Release 6.5.0
=============

   * Fixed segfault in 'nncp-daemon' when SP handshake did not succeed.

   * Fixed possible bad return code ignoring in automatic tosser.

   * Fixed race during file descriptors closing when online protocol
     call is finished, that could lead to write error of received packet
     fragment.

   * Kill all packet transmission progress bars in 'nncp-daemon',
     'nncp-call' and 'nncp-caller' when call is finished.

Release 6.4.0
=============

   * Fixed possible race in online protocol, that lead to panic.

Release 6.3.0
=============

   * Fixed possible panic while showing progress during online protocol.

Release 6.2.1
=============

   * Three places in logs contained excess '%s'.

Release 6.2.0
=============

   * Returned 'nncp-caller''s '-autotoss*' options workability.

   * Yet another logging refactoring and simplification.  Should be no
     visible differences to the end user.

Release 6.1.0
=============

   * Optimization: most commands do not keep opened file descriptors
     now.  Previously you can exceed maximal number of opened files if
     you have got many packets in the spool directory.

   * Optimization: do not close file descriptor of the file we download
     online.  Previously each chunk lead to expensive open/close calls.

   * Online downloaded files are saved with '.nock' (non-checksummed)
     suffix, waiting either for 'nncp-check', or online daemons to
     perform integrity check.

   * Optimization: files, that are not resumed, are checksummed
     immediately during the online download, skipping
     '.nock'-intermediate step.

   * Ability to store encrypted packet's header in '.hdr' file, close to
     the packet itself.  That can greatly increase performance of
     packets listing on filesystems with big block's size.

Release 6.0.0
=============

   * Log uses human readable and easy machine parseable recfile
     (https://www.gnu.org/software/recutils/) format for the records,
     instead of structured RFC 3339 lines.  Old logs are not readable by
     'nncp-log' anymore.

   * '-autotoss*' option workability with 'nncp-daemon''s '-inetd' mode.

   * Call's 'when-tx-exists' allows to make a call only when outbound
     packets exists.  Combined with seconds-aware cron expression that
     can be used as some kind of auto dialler.

   * 'nncp-cronexpr' command allows you to check validity and
     expectations of specified cron expression.

Release 5.6.0
=============

   * '-autotoss*' option runs tosser not after the call, but every
     second while it is active.

   * 'autotoss', 'autotoss-doseen', 'autotoss-nofile',
     'autotoss-nofreq', 'autotoss-noexec', 'autotoss-notrns' options
     available in 'calls' configuration section.  You can configure
     per-call automatic tosser options.

   * Use vendoring, instead of '$GOPATH' overriding during tarball
     installation, because current minimal Go's version is 1.12 and it
     supports modules.

Release 5.5.1
=============

   * Respect for '$BINDIR', '$INFODIR' and '$DOCDIR' environment
     variables in 'config' during installation.

Release 5.5.0
=============

   * Bugfixes in 'nncp-call(er)'/'nncp-daemon', 'nncp-bundle' and
     'nncp-stat'.

   * 'nncp-rm' has '-dryrun' and '-older' options now.

   * 'nncp-exec' has '-use-tmp' and '-nocompress' options now.
     Uncompressed packets are not compatible with previous NNCP
     versions.

   * 'nncp-call', 'nncp-caller' and 'nncp-daemon' commands have
     '-autotoss*' options for running tosser after call is ended.

   * Updated dependencies.  Minimal required Go version is 1.12.

Release 5.4.1
=============

   * Fixed 'SENDMAIL' variable usage during the build.

Release 5.4.0
=============

   * Updated dependencies.

   * Build system is moved from Makefiles to redo
     (http://cr.yp.to/redo.html).  This should not influence package
     maintainers, because minimal 'redo' implementation is included in
     tarball.

Release 5.3.3
=============

   * More various error checks.

   * Updated dependencies.

Release 5.3.2
=============

   * Fixed incorrect logic of 'onlinedeadline' timeout, where connection
     won't take into account incoming packets events and will forcefully
     disconnect.

Release 5.3.1
=============

   * Fixed 'onlinedeadline' workability with call addresses that use
     external commands ("|somecmd").

   * 'nncp-stat' has '-pkt' option displaying information about each
     packet in the spool.

Release 5.3.0
=============

   * Progress messages contain prefix, describing the running action.

   * Fixed not occurring handshake messages padding.

   * Finish all SP protocol related goroutines, less memory leak.

   * SP protocol generates less socket write calls, thus generating less
     TCP packets.

   * Check 'onlinedeadline' and 'maxonlinetime' options every second,
     independently from socket reads (up to 10 seconds).

   * Once per minute, if no other traffic exists, PING packets are sent
     in SP-connection.  That allows faster determining of connection
     unworkability.

   * 'nncp-toss' uses lock-file to prevent simultaneous tossing.

Release 5.2.1
=============

   * Fixed SP protocol error handling, sometimes causing program panic.

Release 5.2.0
=============

   * Most commands by default show oneline operations progress.
     '-progress', '-noprogress' command line options, 'noprogress'
     configuration file option appeared.

   * Fixed incorrect 'nncp-check' command return code, that returned bad
     code when everything is good.

   * Free disk space check during 'nncp-bundle -rx' call.

Release 5.1.2
=============

   * *Critical* vulnerability: remote peers authentication could lead to
     incorrect identification of remote side, allowing foreign encrypted
     packets downloading.

   * Bugfix: private and public Noise keys were swapped in newly created
     configuration files, that lead to inability to authenticate online
     peers.

   * Explicit directories 'fsync'-ing for guaranteed files renaming.

Release 5.1.1
=============

   * Fixed workability of 'nncp-file' with '-chunked 0' option.

Release 5.1.0
=============

   * 'nncp-file' can send directories, automatically creating pax
     archive on the fly.

   * Free disk space is checked during outbound packets creation.

   * 'freq', 'freqminsize', 'freqchunked' configuration file options
     replaced with the structure: 'freq: {path: ..., minsize: ...,
     chunked: ...}'.

   * Added 'freq.maxsize' configuration file option, forbidding of freq
     sending larger than specified size.

   * Ability to notify about successfully executed commands (exec) with
     'notify.exec' configuration file option.

Release 5.0.0
=============

   * *Incompatible* configuration file format change: YAML is replaced
     with Hjson, due to its simplicity, without noticeable lack of
     either functionality or convenience.

   * *Incompatible* plain packet format changes.  Older versions are not
     supported.  'zlib' compression is replaced with 'Zstandard', due to
     its speed and efficiency, despite library version is not mature
     enough.

   * Ability to call remote nodes via pipe call of external command, not
     only through TCP.

   * 'nncp-cfgnew' generates configuration file with many comments.
     '-nocomments' option can be used for an old behaviour.

   * Duplicate filenames have '.CTR' suffix, instead of 'CTR', to avoid
     possible collisions with '.nncp.chunkCTR'.

   * Ability to override process umask through configuration file
     option.

   * Files and directories are created with 666/777 permissions by
     default, allowing control with 'umask'.

   * Updated dependencies.

   * Full usage of Go modules for dependencies management
     ('go.cypherpunks.ru/nncp/v5' namespace is used).

   * Forbid any later GNU GPL version autousage (project's licence now
     is GNU GPLv3-only).

Release 4.1
===========

   * Workability on GNU/Linux systems and Go 1.10 is fixed.

Release 4.0
===========

   * *Incompatible* encrypted and eblob packet format change: AEAD
     encryption mode with 128 KiB blocks is used now, because previously
     'nncp-toss' did not verify encrypted packet's MAC before feeding
     decrypted data to external command.  Older versions are not
     supported.

   * Available free space checking before copying in 'nncp-xfer',
     'nncp-daemon', 'nncp-call(er)'.

   * 'nncp-call' has ability only to list packets on remote node,
     without their transmission.

   * 'nncp-call' has ability to transfer only specified packets.

   * Workability of 'xxrate' preference in 'calls' configuration file
     section.

   * Dependant libraries are updated.

   * Minor bugfixes.

   * Begin using of 'go.mod' subsystem.

Release 3.4
===========

   * 'nncp-daemon' can be run as 'inetd'-service.

Release 3.3
===========

   * 'nncp-daemon', 'nncp-call', 'nncp-caller' check if '.seen' exists
     and treat it like file was already downloaded.  Possibly it was
     transferred out-of-bound and remote side needs to be notifier about
     that.

   * If higher priority packet is spooled, then 'nncp-daemon' will queue
     its sending first, interrupting lower priority transmissions.

   * Simple packet rate limiter added to online-related tools
     ('nncp-daemon', 'nncp-call', 'nncp-caller').

   * Ability to specify niceness with symbolic notation: NORMAL,
     BULK+10, PRIORITY-5, etc.

   * Changed default niceness levels: for 'nncp-exec' from 64 to 96, for
     'nncp-freq' from 64 to 160, for 'nncp-file' from 196 to 224.

Release 3.2
===========

   * *Incompatible* _bundle_ archive format changes and 'nncp-bundle'
     workability with Go 1.10+.  Bundles must be valid tar archives, but
     Go 1.9 made them invalid because of long paths inside.  NNCP
     accidentally was dependant on that bug.  Explicit adding of 'NNCP/'
     directory in archive restores workability with valid tar archives.

Release 3.1
===========

   * Ability to disable relaying at all using -via - command line
     option.

Release 3.0
===========

   * *Incompatible* plain packet format changes.  Older versions are not
     supported.

   * Ability to queue remote command execution, by configuring 'exec'
     option in configuration file and using 'nncp-exec' command:
        * 'nncp-mail' command is replaced with more flexible
          'nncp-exec'.  Instead of nncp-mail NODE RECIPIENT you must use
          nncp-exec NODE sendmail RECIPIENT.
        * 'sendmail' configuration file option is replaced with 'exec'.
          'sendmail: [...]' must be replaced with 'exec: sendmail:
          [...]'.

   * Ability to override 'via' configuration option for destination node
     via '-via' command line option for following commands: 'nncp-file',
     'nncp-freq', 'nncp-exec'.

   * Chunked files, having size less than specified chunk size, will be
     sent as an ordinary single file.

   * Exec commands are invoked with additional '$NNCP_NICE' and
     '$NNCP_SELF' environment variables.

   * Files, that are sent as a reply to freq, have niceness level taken
     from the freq packet.  You can set desired niceness during
     'nncp-freq' invocation using '-replynice' option.

   * 'nncp-toss' command can ignore specified packet types during
     processing: '-nofile', '-nofreq', '-noexec', '-notrns'.

   * 'nncp-file' command uses 'FreqMinSize'/'FreqChunked' configuration
     file options for '-minsize'/'-chunked' by default.  You can turn
     this off by specifying zero value.

Release 2.0
===========

   * *Incompatible* encrypted/eblob packet format changes.  Older
     versions are not supported.

   * Twofish encryption algorithm is replaced with ChaCha20.  It is much
     more faster.  One cryptographic primitive less.

   * HKDF-BLAKE2b-256 KDF algorithm is replaced with BLAKE2Xb XOF. Yet
     another cryptographic primitive less (assuming that BLAKE2X is
     nearly identical to BLAKE2).

Release 1.0
===========

   * *Incompatible* encrypted packet format changes.  Older versions are
     not supported.

   * 'nncp-bundle' command can either create stream of encrypted
     packets, or digest it.  It is useful when dealing with
     'stdin'/'stdout' based transmission methods (like writing to CD-ROM
     without intermediate prepared ISO image and working with tape
     drives).

   * 'nncp-toss' is able to create '.seen' files preventing duplicate
     packets receiving.

   * Single background checksum verifier worker is allowed in
     'nncp-call'.  This is helpful when thousands of small inbound
     packets could create many goroutines.

   * Ability to override path to spool directory and logfile through
     either command line argument, or environment variable.

   * 'nncp-rm' is able to delete outbound/inbound, '.seen', '.part',
     '.lock' and temporary files.

Release 0.12
============

   * Sendmail command is called with '$NNCP_SENDER' environment
     variable.

Release 0.11
============

   * 'nncp-stat''s command output is sorted by node name.

Release 0.10
============

   * 'nncp-freq''s 'DST' argument is optional now.  Last 'SRC' path's
     element will be used by default.

Release 0.9
===========

   * Fix '-rx'/'-tx' arguments processing in 'nncp-call' command.  They
     were ignored.

Release 0.8
===========

   * Little bugfix in 'nncp-file' command, where '-minsize' option for
     unchunked transfer was not in KiBs, but in bytes.

Release 0.7
===========

   * Ability to feed 'nncp-file' from 'stdin', that uses an encrypted
     temporary file for that.

   * Chunked files transmission appeared with corresponding 'nncp-reass'
     command and 'freqchunked' configuration file entry.  Useful for
     transferring big files over small storage devices.

   * 'freqminsize' configuration file option, analogue to '-minsize'
     one.

   * 'nncp-xfer''s '-force' option is renamed to '-mkdir' for clarity.

   * '-minsize' option is specified in KiBs, not bytes, for convenience.

   * 'nncp-newcfg' command is renamed to 'nncp-cfgnew', and
     'nncp-mincfg' to 'nncp-cfgmin' - now they have common prefix and
     are grouped together for convenience.

   * 'nncp-cfgenc' command appeared, allowing configuration file
     encryption/decryption, for keeping it safe without any either
     OpenPGP or similar tools usage.

   * Cryptographic libraries (dependencies) are updated.

Release 0.6
===========

   * Small 'nncp-rm' command appeared.
   * Cryptographic libraries (dependencies) are updated.

Release 0.5
===========

   * Trivial small fix in default niceness level of 'nncp-file' and
     'nncp-freq' commands.

Release 0.4
===========

   * Small fix in 'nncp-call', 'nncp-caller', 'nncp-daemon': they can
     segmentation fail sometimes (no data is lost).

   * 'nncp-newnode' renamed to 'nncp-newcfg' - it is shorter and more
     convenient to use.

   * 'nncp-mincfg' command appeared: helper allowing to create
     minimalistic stripped down configuration file without private keys,
     that is useful during 'nncp-xfer' usage.

Release 0.3
===========

   * Fixed compatibility with Go 1.6.

Release 0.2
===========

   * *Incompatible* packet's format change (magic number is changed
     too): size field is encrypted and is not send in plaintext anymore.

   * '-minsize' option gives ability to automatically pad outgoing
     packets to specified minimal size.

   * 'nncp-daemon' and 'nncp-call'/'nncp-caller' always check new _tx_
     packets appearance in the background while connected.  Remote side
     is immediately notified.

   * '-onlinedeadline' option gives ability to configure timeout of
     inactivity of online connection, when it could be disconnected.  It
     could be used to keep connection alive for a long time.

   * '-maxonlinetime' option gives ability to set maximal allowable
     online connection aliveness time.

   * 'nncp-caller' command appeared: cron-ed TCP daemon caller.

   * 'nncp-pkt' command can decompress the data.

