]> Cypherpunks.ru repositories - nncp.git/blob - doc/news.texi
nncp-cfgdir
[nncp.git] / doc / news.texi
1 @node News
2 @unnumbered News
3
4 See also this page @ref{Новости, on russian}.
5
6 @menu
7 * Release 7.3.0: Release 7_3_0.
8 * Release 7.2.1: Release 7_2_1.
9 * Release 7.2.0: Release 7_2_0.
10 * Release 7.1.1: Release 7_1_1.
11 * Release 7.1.0: Release 7_1_0.
12 * Release 7.0.0: Release 7_0_0.
13 * Release 6.6.0: Release 6_6_0.
14 * Release 6.5.0: Release 6_5_0.
15 * Release 6.4.0: Release 6_4_0.
16 * Release 6.3.0: Release 6_3_0.
17 * Release 6.2.1: Release 6_2_1.
18 * Release 6.2.0: Release 6_2_0.
19 * Release 6.1.0: Release 6_1_0.
20 * Release 6.0.0: Release 6_0_0.
21 * Release 5.6.0: Release 5_6_0.
22 * Release 5.5.1: Release 5_5_1.
23 * Release 5.5.0: Release 5_5_0.
24 * Release 5.4.1: Release 5_4_1.
25 * Release 5.4.0: Release 5_4_0.
26 * Release 5.3.3: Release 5_3_3.
27 * Release 5.3.2: Release 5_3_2.
28 * Release 5.3.1: Release 5_3_1.
29 * Release 5.3.0: Release 5_3_0.
30 * Release 5.2.1: Release 5_2_1.
31 * Release 5.2.0: Release 5_2_0.
32 * Release 5.1.2: Release 5_1_2.
33 * Release 5.1.1: Release 5_1_1.
34 * Release 5.1.0: Release 5_1_0.
35 * Release 5.0.0: Release 5_0_0.
36 * Release 4.1: Release 4_1.
37 * Release 4.0: Release 4_0.
38 * Release 3.4: Release 3_4.
39 * Release 3.3: Release 3_3.
40 * Release 3.2: Release 3_2.
41 * Release 3.1: Release 3_1.
42 * Release 3.0: Release 3_0.
43 * Release 2.0: Release 2_0.
44 * Release 1.0: Release 1_0.
45 * Release 0.12: Release 0_12.
46 * Release 0.11: Release 0_11.
47 * Release 0.10: Release 0_10.
48 * Release 0.9: Release 0_9.
49 * Release 0.8: Release 0_8.
50 * Release 0.7: Release 0_7.
51 * Release 0.6: Release 0_6.
52 * Release 0.5: Release 0_5.
53 * Release 0.4: Release 0_4.
54 * Release 0.3: Release 0_3.
55 * Release 0.2: Release 0_2.
56 @end menu
57
58 @node Release 7_3_0
59 @section Release 7.3.0
60 @itemize
61
62 @item
63 Ability to use directory with a bunch of files as a configuration.
64 @command{nncp-cfgdir} command appeared.
65
66 @end itemize
67
68 @node Release 7_2_1
69 @section Release 7.2.1
70 @itemize
71
72 @item
73 Small optimizations in online commands.
74
75 @end itemize
76
77 @node Release 7_2_0
78 @section Release 7.2.0
79 @itemize
80
81 @item
82 @command{nncp-trns} command appeared for manual transition packets creation.
83
84 @item
85 If destination node of transitional packet has non empty @option{via}
86 route, then do not ignore, but use it.
87
88 @item
89 Do not relay multicast packet to area message's originator, that
90 obviously has seen its own packet.
91
92 @item
93 Much less memory usage during MTH hashing when offset is zero: when
94 packet is not resumed, but for example checked with @command{nncp-check}
95 command.
96
97 @end itemize
98
99 @node Release 7_1_1
100 @section Release 7.1.1
101 @itemize
102
103 @item
104 Fixed failing directories fsync after @file{.seen} file creation.
105
106 @end itemize
107
108 @node Release 7_1_0
109 @section Release 7.1.0
110 @itemize
111
112 @item
113 Multicasting areas feature appeared. Implemented merely by an additional
114 plain packet type with @command{nncp-toss}, @command{nncp-file} and
115 @command{nncp-exec} commands modification.
116
117 @item
118 Fixed workability of @command{nncp-file} and @command{nncp-exec}
119 commands, that use temporary file (stdin and @option{-use-tmp}).
120
121 @item
122 Fixed disappearing bad return code in @command{nncp-exec} command.
123
124 @item
125 Fixed invalid @file{.hdr} generation when transitional packets are used.
126
127 @item
128 @option{-all} option appeared in @command{nncp-rm} command, applying to
129 all the nodes at once.
130
131 @item
132 @option{-cycle} option appeared in @command{nncp-check} command, looping
133 the check in infinite cycle.
134
135 @item
136 @command{nncp-rm} command can take node alias name.
137
138 @item
139 @command{nncp-pkt} can parse @file{.hdr} files.
140
141 @end itemize
142
143 @node Release 7_0_0
144 @section Release 7.0.0
145 @itemize
146
147 @item
148 Minimal required Go version 1.13.
149
150 @item
151 Merkle Tree-based Hashing with BLAKE3 (MTH) is used instead of BLAKE2b.
152 Because of that, there are backward @strong{incompatible} changes of
153 encrypted files (everything laying in the spool directory) and
154 @file{.meta} files of chunked transfer.
155
156 Current implementation is far from being optimal: it lacks
157 parallelizable calculations and has higher memory consumption: nearly
158 512 KiB for each 1 GiB of file's data. Future performance and memory
159 size optimizations should not lead to packet's format change. But it is
160 still several times faster than BLAKE2b.
161
162 @item
163 Resumed online downloads, because of MTH, require reading only of the
164 preceding part of file, not the whole one as was before.
165
166 @item
167 @command{nncp-hash} utility appeared for calculating file's MTH hash.
168
169 @item
170 BLAKE2 KDF and XOF functions are replaced with BLAKE3 in encrypted
171 packets. Lowering number of used primitives. Also, its encrypted
172 packet's header is used as an associated data during encryption.
173
174 @item
175 MultiCast Discovery uses
176 @verb{|ff02::4e4e:4350|} address instead of @verb{|ff02::1|}.
177
178 @item
179 @command{nncp-cfgenc} mistakenly asked passphrase three times during encryption.
180
181 @item
182 @command{nncp-stat} reports about partly downloaded packets.
183
184 @item
185 Updated dependencies.
186
187 @end itemize
188
189 @node Release 6_6_0
190 @section Release 6.6.0
191 @itemize
192
193 @item
194 @command{nncp-daemon}, @command{nncp-call} and @command{nncp-caller}
195 commands wait for all background checksummers completion after
196 connection is finished.
197
198 @item
199 Added possibility of address determining through multicast announcement
200 in local area network, so called MCD (MultiCast Discovery).
201
202 @end itemize
203
204 @node Release 6_5_0
205 @section Release 6.5.0
206 @itemize
207
208 @item
209 Fixed segfault in @command{nncp-daemon} when SP handshake did not succeed.
210
211 @item
212 Fixed possible bad return code ignoring in automatic tosser.
213
214 @item
215 Fixed race during file descriptors closing when online protocol call is
216 finished, that could lead to write error of received packet fragment.
217
218 @item
219 Kill all packet transmission progress bars in @command{nncp-daemon},
220 @command{nncp-call} and @command{nncp-caller} when call is finished.
221
222 @end itemize
223
224 @node Release 6_4_0
225 @section Release 6.4.0
226 @itemize
227
228 @item
229 Fixed possible race in online protocol, that lead to panic.
230
231 @end itemize
232
233 @node Release 6_3_0
234 @section Release 6.3.0
235 @itemize
236
237 @item
238 Fixed possible panic while showing progress during online protocol.
239
240 @end itemize
241
242 @node Release 6_2_1
243 @section Release 6.2.1
244 @itemize
245
246 @item
247 Three places in logs contained excess @code{%s}.
248
249 @end itemize
250
251 @node Release 6_2_0
252 @section Release 6.2.0
253 @itemize
254
255 @item
256 Returned @command{nncp-caller}'s @option{-autotoss*} options workability.
257
258 @item
259 Yet another logging refactoring and simplification.
260 Should be no visible differences to the end user.
261
262 @end itemize
263
264 @node Release 6_1_0
265 @section Release 6.1.0
266 @itemize
267
268 @item
269 Optimization: most commands do not keep opened file descriptors now.
270 Previously you can exceed maximal number of opened files if you have got
271 many packets in the spool directory.
272
273 @item
274 Optimization: do not close file descriptor of the file we download
275 online. Previously each chunk lead to expensive open/close calls.
276
277 @item
278 Online downloaded files are saved with @file{.nock} (non-checksummed)
279 suffix, waiting either for @command{nncp-check}, or online daemons to
280 perform integrity check.
281
282 @item
283 Optimization: files, that are not resumed, are checksummed immediately
284 during the online download, skipping @file{.nock}-intermediate step.
285
286 @item
287 Ability to store encrypted packet's header in @file{.hdr} file, close to
288 the packet itself. That can greatly increase performance of packets
289 listing on filesystems with big block's size.
290
291 @end itemize
292
293 @node Release 6_0_0
294 @section Release 6.0.0
295 @itemize
296
297 @item
298 Log uses human readable and easy machine parseable
299 @url{https://www.gnu.org/software/recutils/, recfile} format for the
300 records, instead of structured RFC 3339 lines. Old logs are not readable
301 by @command{nncp-log} anymore.
302
303 @item
304 @option{-autotoss*} option workability with @command{nncp-daemon}'s
305 @option{-inetd} mode.
306
307 @item
308 Call's @option{when-tx-exists} allows to make a call only when outbound
309 packets exists. Combined with seconds-aware cron expression that can be
310 used as some kind of auto dialler.
311
312 @item
313 @command{nncp-cronexpr} command allows you to check validity and
314 expectations of specified cron expression.
315
316 @end itemize
317
318 @node Release 5_6_0
319 @section Release 5.6.0
320 @itemize
321
322 @item
323 @option{-autotoss*} option runs tosser not after the call, but every
324 second while it is active.
325
326 @item
327 @option{autotoss}, @option{autotoss-doseen},
328 @option{autotoss-nofile}, @option{autotoss-nofreq},
329 @option{autotoss-noexec}, @option{autotoss-notrns} options available in
330 @option{calls} configuration section. You can configure per-call
331 automatic tosser options.
332
333 @item
334 Use vendoring, instead of @env{GOPATH} overriding during tarball
335 installation, because current minimal Go's version is 1.12 and it
336 supports modules.
337
338 @end itemize
339
340 @node Release 5_5_1
341 @section Release 5.5.1
342 @itemize
343
344 @item
345 Respect for @env{BINDIR}, @env{INFODIR} and @env{DOCDIR} environment
346 variables in @file{config} during installation.
347
348 @end itemize
349
350 @node Release 5_5_0
351 @section Release 5.5.0
352 @itemize
353
354 @item
355 Bugfixes in @command{nncp-call(er)}/@command{nncp-daemon},
356 @command{nncp-bundle} and @command{nncp-stat}.
357
358 @item
359 @command{nncp-rm} has @option{-dryrun} and @option{-older} options now.
360
361 @item
362 @command{nncp-exec} has @option{-use-tmp} and @option{-nocompress}
363 options now. Uncompressed packets are not compatible with previous NNCP
364 versions.
365
366 @item
367 @command{nncp-call}, @command{nncp-caller} and @command{nncp-daemon} commands
368 have @option{-autotoss*} options for running tosser after call is ended.
369
370 @item
371 Updated dependencies. Minimal required Go version is 1.12.
372
373 @end itemize
374
375 @node Release 5_4_1
376 @section Release 5.4.1
377 @itemize
378
379 @item
380 Fixed @code{SENDMAIL} variable usage during the build.
381
382 @end itemize
383
384 @node Release 5_4_0
385 @section Release 5.4.0
386 @itemize
387
388 @item
389 Updated dependencies.
390
391 @item
392 Build system is moved from Makefiles to @url{http://cr.yp.to/redo.html, redo}.
393 This should not influence package maintainers, because minimal @command{redo}
394 implementation is included in tarball.
395
396 @end itemize
397
398 @node Release 5_3_3
399 @section Release 5.3.3
400 @itemize
401
402 @item
403 More various error checks.
404
405 @item
406 Updated dependencies.
407
408 @end itemize
409
410 @node Release 5_3_2
411 @section Release 5.3.2
412 @itemize
413
414 @item
415 Fixed incorrect logic of @option{onlinedeadline} timeout, where
416 connection won't take into account incoming packets events and will
417 forcefully disconnect.
418
419 @end itemize
420
421 @node Release 5_3_1
422 @section Release 5.3.1
423 @itemize
424
425 @item
426 Fixed @option{onlinedeadline} workability with call addresses that use
427 external commands (@verb{#"|somecmd"#}).
428
429 @item
430 @command{nncp-stat} has @option{-pkt} option displaying information
431 about each packet in the spool.
432
433 @end itemize
434
435 @node Release 5_3_0
436 @section Release 5.3.0
437 @itemize
438
439 @item
440 Progress messages contain prefix, describing the running action.
441
442 @item
443 Fixed not occurring handshake messages padding.
444
445 @item
446 Finish all SP protocol related goroutines, less memory leak.
447
448 @item
449 SP protocol generates less socket write calls, thus generating less TCP
450 packets.
451
452 @item
453 Check @option{onlinedeadline} and @option{maxonlinetime} options every
454 second, independently from socket reads (up to 10 seconds).
455
456 @item
457 Once per minute, if no other traffic exists, PING packets are sent in
458 SP-connection. That allows faster determining of connection unworkability.
459
460 @item
461 @command{nncp-toss} uses lock-file to prevent simultaneous tossing.
462
463 @end itemize
464
465 @node Release 5_2_1
466 @section Release 5.2.1
467 @itemize
468
469 @item
470 Fixed SP protocol error handling, sometimes causing program panic.
471
472 @end itemize
473
474 @node Release 5_2_0
475 @section Release 5.2.0
476 @itemize
477
478 @item
479 Most commands by default show oneline operations progress.
480 @option{-progress}, @option{-noprogress} command line options,
481 @option{noprogress} configuration file option appeared.
482
483 @item
484 Fixed incorrect @command{nncp-check} command return code, that returned
485 bad code when everything is good.
486
487 @item
488 Free disk space check during @command{nncp-bundle -rx} call.
489
490 @end itemize
491
492 @node Release 5_1_2
493 @section Release 5.1.2
494 @itemize
495
496 @item
497 @strong{Critical} vulnerability: remote peers authentication could lead
498 to incorrect identification of remote side, allowing foreign encrypted
499 packets downloading.
500
501 @item
502 Bugfix: private and public Noise keys were swapped in newly created
503 configuration files, that lead to inability to authenticate online peers.
504
505 @item
506 Explicit directories fsync-ing for guaranteed files renaming.
507
508 @end itemize
509
510 @node Release 5_1_1
511 @section Release 5.1.1
512 @itemize
513
514 @item
515 Fixed workability of @command{nncp-file} with @option{-chunked 0} option.
516
517 @end itemize
518
519 @node Release 5_1_0
520 @section Release 5.1.0
521 @itemize
522
523 @item
524 @command{nncp-file} can send directories, automatically creating pax
525 archive on the fly.
526
527 @item
528 Free disk space is checked during outbound packets creation.
529
530 @item
531 @option{freq}, @option{freqminsize}, @option{freqchunked} configuration
532 file options replaced with the structure:
533 @option{freq: @{path: ..., minsize: ..., chunked: ...@}}.
534
535 @item
536 Added @option{freq.maxsize} configuration file option, forbidding of
537 freq sending larger than specified size.
538
539 @item
540 Ability to notify about successfully executed commands (exec) with
541 @option{notify.exec} configuration file option.
542
543 @end itemize
544
545 @node Release 5_0_0
546 @section Release 5.0.0
547 @itemize
548
549 @item
550 @strong{Incompatible} configuration file format change: YAML is
551 replaced with Hjson, due to its simplicity, without noticeable lack
552 of either functionality or convenience.
553
554 @item
555 @strong{Incompatible} plain packet format changes. Older versions are
556 not supported. @code{zlib} compression is replaced with
557 @code{Zstandard}, due to its speed and efficiency, despite library
558 version is not mature enough.
559
560 @item
561 Ability to call remote nodes via pipe call of external command, not only
562 through TCP.
563
564 @item
565 @command{nncp-cfgnew} generates configuration file with many
566 comments. @option{-nocomments} option can be used for an old
567 behaviour.
568
569 @item
570 Duplicate filenames have @file{.CTR} suffix, instead of @file{CTR}, to
571 avoid possible collisions with @file{.nncp.chunkCTR}.
572
573 @item
574 Ability to override process umask through configuration file option.
575
576 @item
577 Files and directories are created with 666/777 permissions by default,
578 allowing control with @command{umask}.
579
580 @item
581 Updated dependencies.
582
583 @item
584 Full usage of go modules for dependencies management
585 (@code{go.cypherpunks.ru/nncp/v5} namespace is used).
586
587 @item
588 Forbid any later GNU GPL version autousage
589 (project's licence now is GNU GPLv3-only).
590
591 @end itemize
592
593 @node Release 4_1
594 @section Release 4.1
595 @itemize
596 @item Workability on GNU/Linux systems and Go 1.10 is fixed.
597 @end itemize
598
599 @node Release 4_0
600 @section Release 4.0
601 @itemize
602
603 @item
604 @strong{Incompatible} encrypted and eblob packet format change: AEAD
605 encryption mode with 128 KiB blocks is used now, because previously
606 @command{nncp-toss} did not verify encrypted packet's MAC before feeding
607 decrypted data to external command. Older versions are not supported.
608
609 @item
610 Available free space checking before copying in @command{nncp-xfer},
611 @command{nncp-daemon}, @command{nncp-call(er)}.
612
613 @item
614 @command{nncp-call} has ability only to list packets on remote node,
615 without their transmission.
616
617 @item
618 @command{nncp-call} has ability to transfer only specified packets.
619
620 @item
621 Workability of @option{xxrate} preference in @option{calls}
622 configuration file section.
623
624 @item
625 Dependant libraries are updated.
626
627 @item
628 Minor bugfixes.
629
630 @item
631 Begin using of @code{go.mod} subsystem.
632
633 @end itemize
634
635 @node Release 3_4
636 @section Release 3.4
637 @itemize
638 @item @command{nncp-daemon} can be run as @command{inetd}-service.
639 @end itemize
640
641 @node Release 3_3
642 @section Release 3.3
643 @itemize
644
645 @item
646 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller} check
647 if @file{.seen} exists and treat it like file was already downloaded.
648 Possibly it was transferred out-of-bound and remote side needs to be
649 notifier about that.
650
651 @item
652 If higher priority packet is spooled, then @command{nncp-daemon} will
653 queue its sending first, interrupting lower priority transmissions.
654
655 @item
656 Simple packet rate limiter added to online-related tools
657 (@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}).
658
659 @item
660 Ability to specify niceness with symbolic notation:
661 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, etc.
662
663 @item
664 Changed default niceness levels:
665 for @command{nncp-exec} from 64 to 96,
666 for @command{nncp-freq} from 64 to 160,
667 for @command{nncp-file} from 196 to 224.
668
669 @end itemize
670
671 @node Release 3_2
672 @section Release 3.2
673 @itemize
674 @item
675 @strong{Incompatible} @emph{bundle} archive format changes and
676 @command{nncp-bundle} workability with Go 1.10+. Bundles must be
677 valid tar archives, but Go 1.9 made them invalid because of long paths
678 inside. NNCP accidentally was dependant on that bug. Explicit adding of
679 @file{NNCP/} directory in archive restores workability with valid tar
680 archives.
681 @end itemize
682
683 @node Release 3_1
684 @section Release 3.1
685 @itemize
686 @item
687 Ability to disable relaying at all using @verb{|-via -|} command line option.
688 @end itemize
689
690 @node Release 3_0
691 @section Release 3.0
692 @itemize
693
694 @item
695 @strong{Incompatible} plain packet format changes. Older versions are
696 not supported.
697
698 @item
699 Ability to queue remote command execution, by configuring @option{exec}
700 option in configuration file and using @command{nncp-exec} command:
701     @itemize
702     @item
703     @command{nncp-mail} command is replaced with more flexible
704     @command{nncp-exec}. Instead of @verb{|nncp-mail NODE RECIPIENT|}
705     you must use @verb{|nncp-exec NODE sendmail RECIPIENT|}.
706     @item
707     @option{sendmail} configuration file option is replaced with
708     @option{exec}. @verb{|sendmail: [...]|} must be replaced with
709     @verb{|exec: sendmail: [...]|}.
710     @end itemize
711
712 @item
713 Ability to override @option{via} configuration option for destination
714 node via @option{-via} command line option for following commands:
715 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
716
717 @item
718 Chunked files, having size less than specified chunk size, will be sent
719 as an ordinary single file.
720
721 @item
722 Exec commands are invoked with additional @env{NNCP_NICE} and
723 @env{NNCP_SELF} environment variables.
724
725 @item
726 Files, that are sent as a reply to freq, have niceness level taken from
727 the freq packet. You can set desired niceness during @command{nncp-freq}
728 invocation using @option{-replynice} option.
729
730 @item
731 @command{nncp-toss} command can ignore specified packet types during
732 processing: @option{-nofile}, @option{-nofreq}, @option{-noexec},
733 @option{-notrns}.
734
735 @item
736 @command{nncp-file} command uses
737 @option{FreqMinSize}/@option{FreqChunked} configuration file options
738 for @option{-minsize}/@option{-chunked} by default. You can turn this
739 off by specifying zero value.
740
741 @end itemize
742
743 @node Release 2_0
744 @section Release 2.0
745 @itemize
746
747 @item
748 @strong{Incompatible} encrypted/eblob packet format changes. Older
749 versions are not supported.
750
751 @item
752 Twofish encryption algorithm is replaced with ChaCha20. It is much more
753 faster. One cryptographic primitive less.
754
755 @item
756 HKDF-BLAKE2b-256 KDF algorithm is replaced with BLAKE2Xb XOF. Yet
757 another cryptographic primitive less (assuming that BLAKE2X is nearly
758 identical to BLAKE2).
759
760 @end itemize
761
762 @node Release 1_0
763 @section Release 1.0
764 @itemize
765
766 @item
767 @strong{Incompatible} encrypted packet format changes. Older versions
768 are not supported.
769
770 @item
771 @command{nncp-bundle} command can either create stream of encrypted
772 packets, or digest it. It is useful when dealing with
773 @code{stdin}/@code{stdout} based transmission methods (like writing to
774 CD-ROM without intermediate prepared ISO image and working with tape
775 drives).
776
777 @item
778 @command{nncp-toss} is able to create @file{.seen} files preventing
779 duplicate packets receiving.
780
781 @item
782 Single background checksum verifier worker is allowed in
783 @command{nncp-call}. This is helpful when thousands of small inbound
784 packets could create many goroutines.
785
786 @item
787 Ability to override path to spool directory and logfile through either
788 command line argument, or environment variable.
789
790 @item
791 @command{nncp-rm} is able to delete outbound/inbound, @file{.seen},
792 @file{.part}, @file{.lock} and temporary files.
793
794 @end itemize
795
796 @node Release 0_12
797 @section Release 0.12
798 @itemize
799 @item Sendmail command is called with @env{NNCP_SENDER} environment variable.
800 @end itemize
801
802 @node Release 0_11
803 @section Release 0.11
804 @itemize
805 @item @command{nncp-stat}'s command output is sorted by node name.
806 @end itemize
807
808 @node Release 0_10
809 @section Release 0.10
810 @itemize
811 @item
812 @command{nncp-freq}'s @file{DST} argument is optional now. Last
813 @file{SRC} path's element will be used by default.
814 @end itemize
815
816 @node Release 0_9
817 @section Release 0.9
818 @itemize
819 @item
820 Fix @option{-rx}/@option{-tx} arguments processing in
821 @command{nncp-call} command. They were ignored.
822 @end itemize
823
824 @node Release 0_8
825 @section Release 0.8
826 @itemize
827 @item
828 Little bugfix in @command{nncp-file} command, where @option{-minsize}
829 option for unchunked transfer was not in KiBs, but in bytes.
830 @end itemize
831
832 @node Release 0_7
833 @section Release 0.7
834 @itemize
835
836 @item
837 Ability to feed @command{nncp-file} from @code{stdin}, that uses an
838 encrypted temporary file for that.
839
840 @item
841 Chunked files transmission appeared with corresponding
842 @command{nncp-reass} command and @option{freqchunked} configuration file
843 entry. Useful for transferring big files over small storage devices.
844
845 @item
846 @option{freqminsize} configuration file option, analogue to
847 @option{-minsize} one.
848
849 @item
850 @command{nncp-xfer}'s @option{-force} option is renamed to
851 @option{-mkdir} for clarity.
852
853 @item
854 @option{-minsize} option is specified in KiBs, not bytes, for
855 convenience.
856
857 @item
858 @command{nncp-newcfg} command is renamed to @command{nncp-cfgnew},
859 and @command{nncp-mincfg} to @command{nncp-cfgmin} -- now they have
860 common prefix and are grouped together for convenience.
861
862 @item
863 @command{nncp-cfgenc} command appeared, allowing configuration file
864 encryption/decryption, for keeping it safe without any either OpenPGP or
865 similar tools usage.
866
867 @item
868 Cryptographic libraries (dependencies) are updated.
869
870 @end itemize
871
872 @node Release 0_6
873 @section Release 0.6
874 @itemize
875 @item Small @command{nncp-rm} command appeared.
876 @item Cryptographic libraries (dependencies) are updated.
877 @end itemize
878
879 @node Release 0_5
880 @section Release 0.5
881 @itemize
882 @item
883 Trivial small fix in default niceness level of @command{nncp-file}
884 and @command{nncp-freq} commands.
885 @end itemize
886
887 @node Release 0_4
888 @section Release 0.4
889 @itemize
890
891 @item
892 Small fix in @command{nncp-call}, @command{nncp-caller},
893 @command{nncp-daemon}: they can segmentation fail sometimes (no data is
894 lost).
895
896 @item
897 @command{nncp-newnode} renamed to @command{nncp-newcfg} -- it is shorter
898 and more convenient to use.
899
900 @item
901 @command{nncp-mincfg} command appeared: helper allowing to create
902 minimalistic stripped down configuration file without private keys, that
903 is useful during @command{nncp-xfer} usage.
904
905 @end itemize
906
907 @node Release 0_3
908 @section Release 0.3
909 @itemize
910 @item Fixed compatibility with Go 1.6.
911 @end itemize
912
913 @node Release 0_2
914 @section Release 0.2
915 @itemize
916
917 @item
918 @strong{Incompatible} packet's format change (magic number is changed
919 too): size field is encrypted and is not send in plaintext anymore.
920
921 @item
922 @option{-minsize} option gives ability to automatically pad outgoing
923 packets to specified minimal size.
924
925 @item
926 @command{nncp-daemon} and @command{nncp-call}/@command{nncp-caller}
927 always check new @emph{tx} packets appearance in the background while
928 connected. Remote side is immediately notified.
929
930 @item
931 @option{-onlinedeadline} option gives ability to configure timeout of
932 inactivity of online connection, when it could be disconnected. It could
933 be used to keep connection alive for a long time.
934
935 @item
936 @option{-maxonlinetime} option gives ability to set maximal allowable
937 online connection aliveness time.
938
939 @item
940 @command{nncp-caller} command appeared: cron-ed TCP daemon caller.
941
942 @item
943 @command{nncp-pkt} command can decompress the data.
944
945 @end itemize