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