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