]> Cypherpunks.ru repositories - nncp.git/blob - doc/news.texi
Autotoss call options
[nncp.git] / doc / news.texi
1 @node News
2 @unnumbered News
3
4 See also this page @ref{Новости, on russian}.
5
6 @node Release 5.6.0
7 @section Release 5.6.0
8 @itemize
9
10 @item
11 @option{-autotoss*} option runs tosser not after the call, but every
12 second while it is active.
13
14 @item
15 @option{autotoss}, @option{autotoss-doseen},
16 @option{autotoss-nofile}, @option{autotoss-nofreq},
17 @option{autotoss-noexec}, @option{autotoss-notrns} options available in
18 @option{calls} configuration section. You can configure per-call
19 automatic tosser options.
20
21 @end itemize
22
23 @node Release 5.5.1
24 @section Release 5.5.1
25 @itemize
26
27 @item
28 Respect for @env{BINDIR}, @env{INFODIR} and @env{DOCDIR} environment
29 variables in @file{config} during installation.
30
31 @end itemize
32
33 @node Release 5.5.0
34 @section Release 5.5.0
35 @itemize
36
37 @item
38 Bugfixes in @command{nncp-call(er)}/@command{nncp-daemon},
39 @command{nncp-bundle} and @command{nncp-stat}.
40
41 @item
42 @command{nncp-rm} has @option{-dryrun} and @option{-older} options now.
43
44 @item
45 @command{nncp-exec} has @option{-use-tmp} and @option{-nocompress}
46 options now. Uncompressed packets are not compatible with previous NNCP
47 versions.
48
49 @item
50 @command{nncp-call}, @command{nncp-caller} and @command{nncp-daemon} commands
51 have @option{-autotoss*} options for running tosser after call is ended.
52
53 @item
54 Updated dependencies. Minimal required Go version is 1.12.
55
56 @end itemize
57
58 @node Release 5.4.1
59 @section Release 5.4.1
60 @itemize
61
62 @item
63 Fixed @code{SENDMAIL} variable usage during the build.
64
65 @end itemize
66
67 @node Release 5.4.0
68 @section Release 5.4.0
69 @itemize
70
71 @item
72 Updated dependencies.
73
74 @item
75 Build system is moved from Makefiles to @url{http://cr.yp.to/redo.html, redo}.
76 This should not influence package maintainers, because minimal @command{redo}
77 implementation is included in tarball.
78
79 @end itemize
80
81 @node Release 5.3.3
82 @section Release 5.3.3
83 @itemize
84
85 @item
86 More various error checks.
87
88 @item
89 Updated dependencies.
90
91 @end itemize
92
93 @node Release 5.3.2
94 @section Release 5.3.2
95 @itemize
96
97 @item
98 Fixed incorrect logic of @option{onlinedeadline} timeout, where
99 connection won't take into account incoming packets events and will
100 forcefully disconnect.
101
102 @end itemize
103
104 @node Release 5.3.1
105 @section Release 5.3.1
106 @itemize
107
108 @item
109 Fixed @option{onlinedeadline} workability with call addresses that use
110 external commands (@verb{#"|somecmd"#}).
111
112 @item
113 @command{nncp-stat} has @option{-pkt} option displaying information
114 about each packet in the spool.
115
116 @end itemize
117
118 @node Release 5.3.0
119 @section Release 5.3.0
120 @itemize
121
122 @item
123 Progress messages contain prefix, describing the running action.
124
125 @item
126 Fixed not occurring handshake messages padding.
127
128 @item
129 Finish all SP protocol related goroutines, less memory leak.
130
131 @item
132 SP protocol generates less socket write calls, thus generating less TCP
133 packets.
134
135 @item
136 Check @option{onlinedeadline} and @option{maxonlinetime} options every
137 second, independently from socket reads (up to 10 seconds).
138
139 @item
140 Once per minute, if no other traffic exists, PING packets are sent in
141 SP-connection. That allows faster determining of connection unworkability.
142
143 @item
144 @command{nncp-toss} uses lock-file to prevent simultaneous tossing.
145
146 @end itemize
147
148 @node Release 5.2.1
149 @section Release 5.2.1
150 @itemize
151
152 @item
153 Fixed SP protocol error handling, sometimes causing program panic.
154
155 @end itemize
156
157 @node Release 5.2.0
158 @section Release 5.2.0
159 @itemize
160
161 @item
162 Most commands by default show oneline operations progress.
163 @option{-progress}, @option{-noprogress} command line options,
164 @option{noprogress} configuration file option appeared.
165
166 @item
167 Fixed incorrect @command{nncp-check} command return code, that returned
168 bad code when everything is good.
169
170 @item
171 Free disk space check during @command{nncp-bundle -rx} call.
172
173 @end itemize
174
175 @node Release 5.1.2
176 @section Release 5.1.2
177 @itemize
178
179 @item
180 @strong{Critical} vulnerability: remote peers authentication could lead
181 to incorrect identification of remote side, allowing foreign encrypted
182 packets downloading.
183
184 @item
185 Bugfix: private and public Noise keys were swapped in newly created
186 configuration files, that lead to inability to authenticate online peers.
187
188 @item
189 Explicit directories fsync-ing for guaranteed files renaming.
190
191 @end itemize
192
193 @node Release 5.1.1
194 @section Release 5.1.1
195 @itemize
196
197 @item
198 Fixed workability of @command{nncp-file} with @option{-chunked 0} option.
199
200 @end itemize
201
202 @node Release 5.1.0
203 @section Release 5.1.0
204 @itemize
205
206 @item
207 @command{nncp-file} can send directories, automatically creating pax
208 archive on the fly.
209
210 @item
211 Free disk space is checked during outbound packets creation.
212
213 @item
214 @option{freq}, @option{freqminsize}, @option{freqchunked} configuration
215 file options replaced with the structure:
216 @option{freq: @{path: ..., minsize: ..., chunked: ...@}}.
217
218 @item
219 Added @option{freq.maxsize} configuration file option, forbidding of
220 freq sending larger than specified size.
221
222 @item
223 Ability to notify about successfully executed commands (exec) with
224 @option{notify.exec} configuration file option.
225
226 @end itemize
227
228 @node Release 5.0.0
229 @section Release 5.0.0
230 @itemize
231
232 @item
233 @strong{Incompatible} configuration file format change: YAML is
234 replaced with Hjson, due to its simplicity, without noticeable lack
235 of either functionality or convenience.
236
237 @item
238 @strong{Incompatible} plain packet format changes. Older versions are
239 not supported. @code{zlib} compression is replaced with
240 @code{Zstandard}, due to its speed and efficiency, despite library
241 version is not mature enough.
242
243 @item
244 Ability to call remote nodes via pipe call of external command, not only
245 through TCP.
246
247 @item
248 @command{nncp-cfgnew} generates configuration file with many
249 comments. @option{-nocomments} option can be used for an old
250 behaviour.
251
252 @item
253 Duplicate filenames have @file{.CTR} suffix, instead of @file{CTR}, to
254 avoid possible collisions with @file{.nncp.chunkCTR}.
255
256 @item
257 Ability to override process umask through configuration file option.
258
259 @item
260 Files and directories are created with 666/777 permissions by default,
261 allowing control with @command{umask}.
262
263 @item
264 Updated dependencies.
265
266 @item
267 Full usage of go modules for dependencies management
268 (@code{go.cypherpunks.ru/nncp/v5} namespace is used).
269
270 @item
271 Forbid any later GNU GPL version autousage
272 (project's licence now is GNU GPLv3-only).
273
274 @end itemize
275
276 @node Release 4.1
277 @section Release 4.1
278 @itemize
279 @item Workability on GNU/Linux systems and Go 1.10 is fixed.
280 @end itemize
281
282 @node Release 4.0
283 @section Release 4.0
284 @itemize
285
286 @item
287 @strong{Incompatible} encrypted and eblob packet format change: AEAD
288 encryption mode with 128 KiB blocks is used now, because previously
289 @command{nncp-toss} did not verify encrypted packet's MAC before feeding
290 decrypted data to external command. Older versions are not supported.
291
292 @item
293 Available free space checking before copying in @command{nncp-xfer},
294 @command{nncp-daemon}, @command{nncp-call(er)}.
295
296 @item
297 @command{nncp-call} has ability only to list packets on remote node,
298 without their transmission.
299
300 @item
301 @command{nncp-call} has ability to transfer only specified packets.
302
303 @item
304 Workability of @option{xxrate} preference in @option{calls}
305 configuration file section.
306
307 @item
308 Dependant libraries are updated.
309
310 @item
311 Minor bugfixes.
312
313 @item
314 Begin using of @code{go.mod} subsystem.
315
316 @end itemize
317
318 @node Release 3.4
319 @section Release 3.4
320 @itemize
321 @item @command{nncp-daemon} can be run as @command{inetd}-service.
322 @end itemize
323
324 @node Release 3.3
325 @section Release 3.3
326 @itemize
327
328 @item
329 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller} check
330 if @file{.seen} exists and treat it like file was already downloaded.
331 Possibly it was transferred out-of-bound and remote side needs to be
332 notifier about that.
333
334 @item
335 If higher priority packet is spooled, then @command{nncp-daemon} will
336 queue its sending first, interrupting lower priority transmissions.
337
338 @item
339 Simple packet rate limiter added to online-related tools
340 (@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}).
341
342 @item
343 Ability to specify niceness with symbolic notation:
344 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, etc.
345
346 @item
347 Changed default niceness levels:
348 for @command{nncp-exec} from 64 to 96,
349 for @command{nncp-freq} from 64 to 160,
350 for @command{nncp-file} from 196 to 224.
351
352 @end itemize
353
354 @node Release 3.2
355 @section Release 3.2
356 @itemize
357 @item
358 @strong{Incompatible} @emph{bundle} archive format changes and
359 @command{nncp-bundle} workability with Go 1.10+. Bundles must be
360 valid tar archives, but Go 1.9 made them invalid because of long paths
361 inside. NNCP accidentally was dependant on that bug. Explicit adding of
362 @file{NNCP/} directory in archive restores workability with valid tar
363 archives.
364 @end itemize
365
366 @node Release 3.1
367 @section Release 3.1
368 @itemize
369 @item
370 Ability to disable relaying at all using @verb{|-via -|} command line option.
371 @end itemize
372
373 @node Release 3.0
374 @section Release 3.0
375 @itemize
376
377 @item
378 @strong{Incompatible} plain packet format changes. Older versions are
379 not supported.
380
381 @item
382 Ability to queue remote command execution, by configuring @option{exec}
383 option in configuration file and using @command{nncp-exec} command:
384     @itemize
385     @item
386     @command{nncp-mail} command is replaced with more flexible
387     @command{nncp-exec}. Instead of @verb{|nncp-mail NODE RECIPIENT|}
388     you must use @verb{|nncp-exec NODE sendmail RECIPIENT|}.
389     @item
390     @option{sendmail} configuration file option is replaced with
391     @option{exec}. @verb{|sendmail: [...]|} must be replaced with
392     @verb{|exec: sendmail: [...]|}.
393     @end itemize
394
395 @item
396 Ability to override @option{via} configuration option for destination
397 node via @option{-via} command line option for following commands:
398 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
399
400 @item
401 Chunked files, having size less than specified chunk size, will be sent
402 as an ordinary single file.
403
404 @item
405 Exec commands are invoked with additional @env{NNCP_NICE} and
406 @env{NNCP_SELF} environment variables.
407
408 @item
409 Files, that are sent as a reply to freq, have niceness level taken from
410 the freq packet. You can set desired niceness during @command{nncp-freq}
411 invocation using @option{-replynice} option.
412
413 @item
414 @command{nncp-toss} command can ignore specified packet types during
415 processing: @option{-nofile}, @option{-nofreq}, @option{-noexec},
416 @option{-notrns}.
417
418 @item
419 @command{nncp-file} command uses
420 @option{FreqMinSize}/@option{FreqChunked} configuration file options
421 for @option{-minsize}/@option{-chunked} by default. You can turn this
422 off by specifying zero value.
423
424 @end itemize
425
426 @node Release 2.0
427 @section Release 2.0
428 @itemize
429
430 @item
431 @strong{Incompatible} encrypted/eblob packet format changes. Older
432 versions are not supported.
433
434 @item
435 Twofish encryption algorithm is replaced with ChaCha20. It is much more
436 faster. One cryptographic primitive less.
437
438 @item
439 HKDF-BLAKE2b-256 KDF algorithm is replaced with BLAKE2Xb XOF. Yet
440 another cryptographic primitive less (assuming that BLAKE2X is nearly
441 identical to BLAKE2).
442
443 @end itemize
444
445 @node Release 1.0
446 @section Release 1.0
447 @itemize
448
449 @item
450 @strong{Incompatible} encrypted packet format changes. Older versions
451 are not supported.
452
453 @item
454 @command{nncp-bundle} command can either create stream of encrypted
455 packets, or digest it. It is useful when dealing with
456 @code{stdin}/@code{stdout} based transmission methods (like writing to
457 CD-ROM without intermediate prepared ISO image and working with tape
458 drives).
459
460 @item
461 @command{nncp-toss} is able to create @file{.seen} files preventing
462 duplicate packets receiving.
463
464 @item
465 Single background checksum verifier worker is allowed in
466 @command{nncp-call}. This is helpful when thousands of small inbound
467 packets could create many goroutines.
468
469 @item
470 Ability to override path to spool directory and logfile through either
471 command line argument, or environment variable.
472
473 @item
474 @command{nncp-rm} is able to delete outbound/inbound, @file{.seen},
475 @file{.part}, @file{.lock} and temporary files.
476
477 @end itemize
478
479 @node Release 0.12
480 @section Release 0.12
481 @itemize
482 @item Sendmail command is called with @env{NNCP_SENDER} environment variable.
483 @end itemize
484
485 @node Release 0.11
486 @section Release 0.11
487 @itemize
488 @item @command{nncp-stat}'s command output is sorted by node name.
489 @end itemize
490
491 @node Release 0.10
492 @section Release 0.10
493 @itemize
494 @item
495 @command{nncp-freq}'s @file{DST} argument is optional now. Last
496 @file{SRC} path's element will be used by default.
497 @end itemize
498
499 @node Release 0.9
500 @section Release 0.9
501 @itemize
502 @item
503 Fix @option{-rx}/@option{-tx} arguments processing in
504 @command{nncp-call} command. They were ignored.
505 @end itemize
506
507 @node Release 0.8
508 @section Release 0.8
509 @itemize
510 @item
511 Little bugfix in @command{nncp-file} command, where @option{-minsize}
512 option for unchunked transfer was not in KiBs, but in bytes.
513 @end itemize
514
515 @node Release 0.7
516 @section Release 0.7
517 @itemize
518
519 @item
520 Ability to feed @command{nncp-file} from @code{stdin}, that uses an
521 encrypted temporary file for that.
522
523 @item
524 Chunked files transmission appeared with corresponding
525 @command{nncp-reass} command and @option{freqchunked} configuration file
526 entry. Useful for transferring big files over small storage devices.
527
528 @item
529 @option{freqminsize} configuration file option, analogue to
530 @option{-minsize} one.
531
532 @item
533 @command{nncp-xfer}'s @option{-force} option is renamed to
534 @option{-mkdir} for clarity.
535
536 @item
537 @option{-minsize} option is specified in KiBs, not bytes, for
538 convenience.
539
540 @item
541 @command{nncp-newcfg} command is renamed to @command{nncp-cfgnew},
542 and @command{nncp-mincfg} to @command{nncp-cfgmin} -- now they have
543 common prefix and are grouped together for convenience.
544
545 @item
546 @command{nncp-cfgenc} command appeared, allowing configuration file
547 encryption/decryption, for keeping it safe without any either OpenPGP or
548 similar tools usage.
549
550 @item
551 Cryptographic libraries (dependencies) are updated.
552
553 @end itemize
554
555 @node Release 0.6
556 @section Release 0.6
557 @itemize
558 @item Small @command{nncp-rm} command appeared.
559 @item Cryptographic libraries (dependencies) are updated.
560 @end itemize
561
562 @node Release 0.5
563 @section Release 0.5
564 @itemize
565 @item
566 Trivial small fix in default niceness level of @command{nncp-file}
567 and @command{nncp-freq} commands.
568 @end itemize
569
570 @node Release 0.4
571 @section Release 0.4
572 @itemize
573
574 @item
575 Small fix in @command{nncp-call}, @command{nncp-caller},
576 @command{nncp-daemon}: they can segmentation fail sometimes (no data is
577 lost).
578
579 @item
580 @command{nncp-newnode} renamed to @command{nncp-newcfg} -- it is shorter
581 and more convenient to use.
582
583 @item
584 @command{nncp-mincfg} command appeared: helper allowing to create
585 minimalistic stripped down configuration file without private keys, that
586 is useful during @command{nncp-xfer} usage.
587
588 @end itemize
589
590 @node Release 0.3
591 @section Release 0.3
592 @itemize
593 @item Fixed compatibility with Go 1.6.
594 @end itemize
595
596 @node Release 0.2
597 @section Release 0.2
598 @itemize
599
600 @item
601 @strong{Incompatible} packet's format change (magic number is changed
602 too): size field is encrypted and is not send in plaintext anymore.
603
604 @item
605 @option{-minsize} option gives ability to automatically pad outgoing
606 packets to specified minimal size.
607
608 @item
609 @command{nncp-daemon} and @command{nncp-call}/@command{nncp-caller}
610 always check new @emph{tx} packets appearance in the background while
611 connected. Remote side is immediately notified.
612
613 @item
614 @option{-onlinedeadline} option gives ability to configure timeout of
615 inactivity of online connection, when it could be disconnected. It could
616 be used to keep connection alive for a long time.
617
618 @item
619 @option{-maxonlinetime} option gives ability to set maximal allowable
620 online connection aliveness time.
621
622 @item
623 @command{nncp-caller} command appeared: cron-ed TCP daemon caller.
624
625 @item
626 @command{nncp-pkt} command can decompress the data.
627
628 @end itemize