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