4 See also this page @ref{Новости, on russian}.
9 @item Duplicate filenames have @file{.CTR} suffix, instead of
10 @file{CTR}, to avoid possible collisions with @file{.nncp.chunkCTR}.
11 @item Files and directories are created with 666/777 permissions by
12 default, allowing control with @command{umask}.
13 @item Updated dependencies.
14 @item Full usage of go modules for dependencies management
15 (@code{go.cypherpunks.ru/nncp/v4} namespace is used).
22 Workability on GNU/Linux systems and Go 1.10 is fixed.
29 @strong{Incompatible} encrypted and eblob packet format change: AEAD
30 encryption mode with 128 KiB blocks is used now, because previously
31 @command{nncp-toss} did not verify encrypted packet's MAC before feeding
32 decrypted data to external command. Older versions are not supported.
34 Available free space checking before copying in @command{nncp-xfer},
35 @command{nncp-daemon}, @command{nncp-call(er)}.
37 @command{nncp-call} has ability only to list packets on remote node,
38 without their transmission.
40 @command{nncp-call} has ability to transfer only specified packets.
42 Workability of @option{xxrate} preference in @option{calls}
43 configuration file section.
45 Dependant libraries are updated.
49 Begin using of @code{go.mod} subsystem.
56 @command{nncp-daemon} can be run as @command{inetd}-service.
63 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller} check
64 if @file{.seen} exists and treat it like file was already downloaded.
65 Possibly it was transferred out-of-bound and remote side needs to be
68 If higher priority packet is spooled, then @command{nncp-daemon} will
69 queue its sending first, interrupting lower priority transmissions.
71 Simple packet rate limiter added to online-related tools
72 (@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}).
74 Ability to specify niceness with symbolic notation:
75 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, etc.
77 Changed default niceness levels:
78 for @command{nncp-exec} from 64 to 96,
79 for @command{nncp-freq} from 64 to 160,
80 for @command{nncp-file} from 196 to 224.
87 @strong{Incompatible} @emph{bundle} archive format changes and
88 @command{nncp-bundle} workability with Go 1.10+. Bundles must be
89 valid tar archives, but Go 1.9 made them invalid because of long paths
90 inside. NNCP accidentally was dependant on that bug. Explicit adding of
91 @file{NNCP/} directory in archive restores workability with valid tar
99 Ability to disable relaying at all using @verb{|-via -|} command line option.
106 @strong{Incompatible} plain packet format changes. Older versions are
109 Ability to queue remote command execution, by configuring @option{exec}
110 option in configuration file and using @command{nncp-exec} command:
113 @command{nncp-mail} command is replaced with more flexible
114 @command{nncp-exec}. Instead of @verb{|nncp-mail NODE RECIPIENT|}
115 you must use @verb{|nncp-exec NODE sendmail RECIPIENT|}.
117 @option{sendmail} configuration file option is replaced with
118 @option{exec}. @verb{|sendmail: [...]|} must be replaced with
119 @verb{|exec: sendmail: [...]|}.
122 Ability to override @option{via} configuration option for destination
123 node via @option{-via} command line option for following commands:
124 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
126 Chunked files, having size less than specified chunk size, will be sent
127 as an ordinary single file.
129 Exec commands are invoked with additional @env{NNCP_NICE} and
130 @env{NNCP_SELF} environment variables.
132 Files, that are sent as a reply to freq, have niceness level taken from
133 the freq packet. You can set desired niceness during @command{nncp-freq}
134 invocation using @option{-replynice} option.
136 @command{nncp-toss} command can ignore specified packet types during
137 processing: @option{-nofile}, @option{-nofreq}, @option{-noexec},
140 @command{nncp-file} command uses
141 @option{FreqMinSize}/@option{FreqChunked} configuration file options
142 for @option{-minsize}/@option{-chunked} by default. You can turn this
143 off by specifying zero value.
150 @strong{Incompatible} encrypted/eblob packet format changes. Older
151 versions are not supported.
153 Twofish encryption algorithm is replaced with ChaCha20. It is much more
154 faster. One cryptographic primitive less.
156 HKDF-BLAKE2b-256 KDF algorithm is replaced with BLAKE2Xb XOF. Yet
157 another cryptographic primitive less (assuming that BLAKE2X is nearly
158 identical to BLAKE2).
165 @strong{Incompatible} encrypted packet format changes. Older versions
168 @command{nncp-bundle} command can either create stream of encrypted
169 packets, or digest it. It is useful when dealing with stdin/stdout based
170 transmission methods (like writing to CD-ROM without intermediate
171 prepared ISO image and working with tape drives).
173 @command{nncp-toss} is able to create @file{.seen} files preventing
174 duplicate packets receiving.
176 Single background checksum verifier worker is allowed in
177 @command{nncp-call}. This is helpful when thousands of small inbound
178 packets could create many goroutines.
180 Ability to override path to spool directory and logfile through either
181 command line argument, or environment variable.
183 @command{nncp-rm} is able to delete outbound/inbound, @file{.seen},
184 @file{.part}, @file{.lock} and temporary files.
188 @section Release 0.12
191 Sendmail command is called with @env{NNCP_SENDER} environment variable.
195 @section Release 0.11
198 @command{nncp-stat}'s command output is sorted by node name.
202 @section Release 0.10
205 @command{nncp-freq}'s @file{DST} argument is optional now. Last
206 @file{SRC} path's element will be used by default.
213 Fix @option{-rx}/@option{-tx} arguments processing in
214 @command{nncp-call} command. They were ignored.
221 Little bugfix in @command{nncp-file} command, where @option{-minsize}
222 option for unchunked transfer was not in KiBs, but in bytes.
229 Ability to feed @command{nncp-file} from stdin, that uses an encrypted
230 temporary file for that.
233 Chunked files transmission appeared with corresponding
234 @command{nncp-reass} command and @option{freqchunked} configuration file
235 entry. Useful for transferring big files over small storage devices.
238 @option{freqminsize} configuration file option, analogue to
239 @option{-minsize} one.
242 @command{nncp-xfer}'s @option{-force} option is renamed to
243 @option{-mkdir} for clarity.
246 @option{-minsize} option is specified in KiBs, not bytes, for
250 @command{nncp-newcfg} command is renamed to @command{nncp-cfgnew},
251 and @command{nncp-mincfg} to @command{nncp-cfgmin} -- now they have
252 common prefix and are grouped together for convenience.
255 @command{nncp-cfgenc} command appeared, allowing configuration file
256 encryption/decryption, for keeping it safe without any either OpenPGP or
260 Cryptographic libraries (dependencies) are updated.
266 @item Small @command{nncp-rm} command appeared.
267 @item Cryptographic libraries (dependencies) are updated.
273 @item Trivial small fix in default niceness level of @command{nncp-file}
274 and @command{nncp-freq} commands.
280 @item Small fix in @command{nncp-call}, @command{nncp-caller},
281 @command{nncp-daemon}: they can segmentation fail sometimes (no data is
283 @item @command{nncp-newnode} renamed to @command{nncp-newcfg} -- it is
284 shorter and more convenient to use.
285 @item @command{nncp-mincfg} command appeared: helper allowing to create
286 minimalistic stripped down configuration file without private keys,
287 that is useful during @command{nncp-xfer} usage.
292 Fixed compatibility with Go 1.6.
297 @item @strong{Incompatible} packet's format change (magic number is
298 changed too): size field is encrypted and is not send in plaintext
300 @item @option{-minsize} option gives ability to automatically pad
301 outgoing packets to specified minimal size.
302 @item @command{nncp-daemon} and
303 @command{nncp-call}/@command{nncp-caller} always check new @emph{tx}
304 packets appearance in the background while connected. Remote side is
305 immediately notified.
306 @item @option{-onlinedeadline} option gives ability to configure timeout
307 of inactivity of online connection, when it could be disconnected. It
308 could be used to keep connection alive for a long time.
309 @item @option{-maxonlinetime} option gives ability to set maximal
310 allowable online connection aliveness time.
311 @item @command{nncp-caller} command appeared: cron-ed TCP daemon caller.
312 @item @command{nncp-pkt} command can decompress the data.