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