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