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