5 @subsection Релиз 8.5.0
9 Исправлена работоспособность @command{nncp-bundle}.
14 @subsection Релиз 8.4.0
18 Имена интерфейсов относящихся к multicast (@code{mcd-listen} и
19 @code{mcd-send} опции конфигурации) теперь являются регулярными
20 выражениями. По умолчанию @command{nncp-cfgnew} не комментирует
21 их теперь и прописывает @code{.*} имя интерфейса.
24 У @command{nncp-call} команды появился @option{-mcd-wait} аргумент,
25 позволяющий дожидаться multicast сообщения об адресе ноды.
28 @command{nncp-file} команда пропускает всё что не является регулярным
29 файлом или директорией во время создания pax-архива.
34 @subsection Релиз 8.3.0
38 Исправлена возможность сборки на 32-бит системах.
43 @subsection Релиз 8.2.0
47 Yggdrasil использует IPv6+TCP сетевой стэк написанный полностью на Go,
48 вместо голого μTP транспортного протокола, делая возможным работу в
49 качестве обычного TCP сервера внутри overlay сети.
52 Конфигурационные строки Yggdrasil вида @code{prv;bind1,bind2;pub...}
53 заменены на URL-подобные (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
56 Возможно передавать параметры Yggdrasil конфигурации связанные с multicast.
59 @command{nncp-daemon} может слушать одновременно и на TCP и на
60 Yggdrasil-управляемом сокетах.
63 Слушание на endpoint сокете для пиринга в @command{nncp-daemon}
64 опционально -- вы можете быть доступны и через связь с peer-ами.
69 @subsection Релиз 8.1.0
73 @command{nncp-cfgdir} команда не требует обязательного наличия
74 @code{self} секции конфигурационного файла.
77 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
78 используя online протокол поверх неё.
83 @subsection Релиз 8.0.2
87 Исправлена возможность отправки мультивещательных пакетов.
92 @subsection Релиз 8.0.1
96 Исправлено некорректное вычисление @code{freq.chunked} значения, при
97 отсутствии которого всё равно форсированно включалась chunked передача.
100 Исправлено некорректное вычисление значения полного размера файла в
106 @subsection Релиз 8.0.0
110 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
111 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
112 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
113 знания размеров заранее, без создания временного файла или буферизации в
117 Производится корректная проверка дополнения зашифрованного пакета. Это
118 не критичная проблема, но прежде ни размер, ни значение дополнения не
119 были аутентифицированы, позволяя циклично откусывать по байту с конца и
120 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
121 такого зашифрованного пакета.
124 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
125 совместимого с потоковой работой формата зашифрованных пакетов.
128 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
129 @option{-maxsize}, ограничивающая максимальный результирующий размер
130 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
131 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
136 @subsection Релиз 7.7.0
140 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
141 изменениях в spool директориях, для сокращения накладных расходов на их
145 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
146 поддиректориях теперь, дабы ускорить сканирование spool областей.
147 Необходима миграция текущих файлов:
150 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
152 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
155 find . -type f -name "*.seen" | while read fn ; do
156 mv $fn seen/$@{fn%.seen@}
160 $ find $NNCPSPOOL -type d -name area | while read area ; do
161 find $area -type f -name "*.seen" | while read fn ; do
170 @subsection Релиз 7.6.0
174 Журналирование может производиться в назначенный открытый файловый
175 дескриптор (@env{$NNCPLOG=FD:5} например).
176 Что дружелюбно к использованию под @command{daemontools}.
179 Добавлены дополнительные проверки наличия публичных ключей в
180 конфигурационном файле, предотвращающие падения некоторых команд.
185 @subsection Релиз 7.5.1
189 NNCP собирается на NetBSD.
194 @subsection Релиз 7.5.0
198 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
199 журнале будет присутствовать адрес удалённой системы (при запуске под
200 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
204 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
205 @option{-ucspi} опцию.
208 Не выходить если не получается слушать на каком-либо MCD сетевом
209 интерфейсе -- только предупреждать об ошибке.
214 @subsection Релиз 7.4.0
218 Исправлена работоспособность MCD при одновременном использовании
219 @command{nncp-daemon} и @command{nncp-caller}.
224 @subsection Релиз 7.3.2
228 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
233 @subsection Релиз 7.3.1
237 Исправлена проблема с возможно остающимся открытым файловым
238 дескриптором в online командах.
241 Существенно снижено потребление памяти MTH хэширования.
246 @subsection Релиз 7.3.0
250 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
253 Возможность использовать конфигурацию в виде директории с набором
254 файлов. Появилась команда @command{nncp-cfgdir}.
259 @subsection Релиз 7.2.1
263 Небольшие оптимизации в online командах.
268 @subsection Релиз 7.2.0
272 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
275 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
276 использовать его, а не игнорировать.
279 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
280 видящего свой собственный пакет.
283 Намного меньшее потребление памяти во время MTH хэширования когда
284 смещение равно нулю: когда пакет не является докачиванием, а например
285 проверяется @command{nncp-check} командой.
290 @subsection Релиз 7.1.1
294 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
299 @subsection Релиз 7.1.0
303 Появилась возможность мультивещательной (multicast) рассылки пакетов.
304 Реализовано всего лишь дополнительным типом простых пакетов и изменением
305 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
308 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
309 команд использующих временный файл (stdin и @option{-use-tmp}).
312 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
315 Исправлено некорректное генерирование @file{.hdr} при использовании
319 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
323 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
324 проверку в бесконечный цикл.
327 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
330 @command{nncp-pkt} может парсить @file{.hdr} файлы.
335 @subsection Релиз 7.0.0
339 Минимальная требуемая версия Go 1.13.
342 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
343 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
344 изменение формата шифрованных файлов (всего что находится в spool
345 области) и формата @file{.meta} файла при chunked передаче.
347 Текущая реализация далека от оптимальной: в ней нет распараллеливания
348 вычислений и имеет повышенное потребление памяти: около 512 KiB на
349 каждый 1 GiB данных файла. Будущая оптимизация производительности и
350 потребления памяти не должна привести к изменению формата пакетов. Но
351 это всё равно в несколько раз быстрее BLAKE2b.
354 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
355 чтения с диска только предшествующей части, а не полностью всего файла,
359 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
362 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
363 уменьшая количество примитивов. А также заголовок шифрованного файла
364 теперь является ассоциированными данными при шифровании.
367 MultiCast Discovery использует
368 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
371 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
374 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
377 Обновлены зависимые библиотеки.
382 @subsection Релиз 6.6.0
386 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
387 ожидают завершения всех процессов фоновой проверки контрольных сумм,
388 после того как соединение закрыто.
391 Добавлена возможность определения адреса через multicast оповещение в
392 локальной сети, так называемый MCD (MultiCast Discovery).
397 @subsection Релиз 6.5.0
401 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
404 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
407 Исправлена гонка при закрытии файловых дескрипторов во время завершения
408 работы online протокола, которая могла привести к ошибке записи
409 принятого фрагмента пакета.
412 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
413 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
418 @subsection Релиз 6.4.0
422 Исправлена возможная гонка в online протоколе, приводящая к падению
428 @subsection Релиз 6.3.0
432 Исправлено возможное падение программы во время показа прогресса online
438 @subsection Релиз 6.2.1
442 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
447 @subsection Релиз 6.2.0
451 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
454 Очередной рефакторинг и упрощение системы журналирования.
455 Не должно быть видимых изменений для конечного пользователя.
460 @subsection Релиз 6.1.0
464 Оптимизация: большинство команд теперь не держат открытыми файловые
465 дескрипторы. Прежде вы легко могли выйти за пределы максимально
466 допустимого количества открытых файлов, если у вас было много пакетов в
470 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
471 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
474 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
475 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
476 online демоны не выполнят проверку целостности.
479 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
480 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
483 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
484 файлах, рядом с самими пакетами. Это может существенно повысить скорость
485 получения списка пакетов на файловых системах с большим размером блока.
490 @subsection Релиз 6.0.0
494 Журнал использует человеко-читаемый и легко обрабатываемый машиной
495 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
496 записей, вместо структурированных строчек RFC 3339. Старый формат
497 журналов не поддерживается @command{nncp-log}.
500 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
501 @command{nncp-daemon}.
504 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
505 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
506 выражением содержащим секунды, это можно использовать как возможность
507 вызова только при появлении исходящих пакетов.
510 @command{nncp-cronexpr} команда позволяет проверить корректность и
511 ожидаемый результат от указанного cron выражения.
516 @subsection Релиз 5.6.0
520 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
521 во время него ежесекундно.
524 В @option{calls} секции конфигурации появились опции
525 @option{autotoss}, @option{autotoss-doseen},
526 @option{autotoss-nofile}, @option{autotoss-nofreq},
527 @option{autotoss-noexec}, @option{autotoss-notrns}.
528 Вы можете настраивать опции автоматического tosser для каждого вызова.
531 Использовать vendoring вместо переопределения @env{$GOPATH} во время
532 установки tarball, так как текущая минимальная версия Go это 1.12,
533 поддерживающая модули.
538 @subsection Релиз 5.5.1
542 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
543 в @file{config} во время установки.
548 @subsection Релиз 5.5.0
552 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
553 @command{nncp-bundle}, @command{nncp-stat} командах.
556 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
559 У команды @command{nncp-exec} появились @option{-use-tmp} и
560 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
564 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
565 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
568 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
573 @subsection Релиз 5.4.1
577 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
582 @subsection Релиз 5.4.0
586 Обновлены зависимые библиотеки.
589 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
590 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
591 реализация @command{redo} включена в tarball.
596 @subsection Релиз 5.3.3
600 Больше различных проверок в коде на ошибки.
603 Обновлены зависимые библиотеки.
608 @subsection Релиз 5.3.2
612 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
613 котором соединение могло не учитывать факты прихода пакетов и обрывать
619 @subsection Релиз 5.3.1
623 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
624 использующими внешние команды (@verb{#"|somecmd"#}).
627 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
628 каждому пакету в spool.
633 @subsection Релиз 5.3.0
637 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
640 Исправлено не происходящее дополнение (padding) handshake сообщений.
643 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
646 SP протокол порождает меньше вызовов записей (соответственно, и TCP
650 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
651 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
654 Раз в минуту, если нет более никакого другого трафика, посылаются PING
655 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
656 более не работоспособно.
659 @command{nncp-toss} использует lock-file для предотвращения
660 одновременной обработки зашифрованных пакетов.
665 @subsection Релиз 5.2.1
669 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
674 @subsection Релиз 5.2.0
678 Большинство команд по умолчанию показывают однострочный прогресс
679 выполнения операции. Появились @option{-progress}, @option{-noprogress}
680 опции командной строки, @option{noprogress} опция конфигурационного
684 Исправлен некорректный код возврата @command{nncp-check} команды,
685 который возвращал ошибку когда всё хорошо.
688 Проверка свободного места для пакетов, во время выполнения
689 @command{nncp-bundle -rx}.
694 @subsection Релиз 5.1.2
698 Исправлена @strong{критичная} уязвимость: аутентификация online нод
699 могла приводить к некорректной идентификации удалённой стороны, позволяя
700 скачивать чужие зашифрованные пакеты.
703 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
704 публичный ключ Noise были поменяны местами, что приводило к
705 невозможности online аутентификации нод.
708 Явная синхронизация (fsync) директорий для гарантированного
709 переименования файлов.
714 @subsection Релиз 5.1.1
718 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
723 @subsection Релиз 5.1.0
727 @command{nncp-file} может отправлять директории, автоматически на лету
731 Во время создания исходящих сообщений проверяется наличие свободного
732 места на файловой системе.
735 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
736 конфигурационного файла заменены на структуру
737 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
740 Добавлена @option{freq.maxsize} опция конфигурационного файл,
741 запрещающая ответ на файловый запрос больше заданного размера.
744 Возможность оповещения об успешно выполненных командах (exec) через
745 @option{notify.exec} опцию конфигурационного файла.
750 @subsection Релиз 5.0.0
754 @strong{Несовместимое} изменение формата конфигурационного файла:
755 YAML заменён на Hjson, из-за его гораздо большей простоты, без
756 заметной потери функционала и удобства.
759 @strong{Несовместимое} изменение формата простых пакетов. Работа со
760 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
761 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
762 смотря на то, что версия библиотеки ещё не проверена временем.
765 Возможность соединяться с удалёнными нодами не только по TCP, но и через
766 pipe вызов сторонней команды.
769 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
770 комментариев. Можно использовать @option{-nocomments} опцию для старого
774 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
775 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
778 Возможность переопределить umask процесса через опцию конфигурационного
782 По умолчанию файлы и директории создаются с 666/777 правами доступа,
783 позволяя управлять ими @command{umask}-ом.
786 Обновлены зависимости.
789 Полное использование go модулей для управления зависимостями
790 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
793 Отмена автоматического использования более новых версий GNU GPL
794 (лицензия проекта GNU GPLv3-только).
799 @subsection Релиз 4.1
801 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
805 @subsection Релиз 4.0
809 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
810 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
811 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
812 отсылать дешифрованные данные внешней команде. Старые версии не
816 Проверка доступного места перед копированием во время работы
817 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
820 @command{nncp-call} имеет возможность только показывать список пакетов
821 на удалённой машине, без их передачи.
824 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
827 Восстановлена работоспособность @option{xxrate} настройки в
828 @option{calls} секции конфигурационного файла.
831 Зависимые библиотеки обновлены.
834 Небольшие исправления ошибок.
837 Начало использования @code{go.mod} подсистемы.
842 @subsection Релиз 3.4
844 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
848 @subsection Релиз 3.3
852 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
853 проверяют существование @file{.seen} файла и расценивают его как то, что
854 файл уже был скачан. Возможно передача данных была осуществлена
855 сторонним способом и удалённая сторона должна быть оповещена об этом.
858 Если более высокоприоритетный пакет попадает в спул, то
859 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
860 низкоприоритетные передачи.
863 К средствам связанным с online-соединениями (@command{nncp-daemon},
864 @command{nncp-call}, @command{nncp-caller}) добавлен простой
865 ограничитель скорости.
868 Возможность задания приоритета символьными обозначениями:
869 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
872 Изменены значения приоритетов по-умолчанию:
873 для @command{nncp-exec} с 64 на 96,
874 для @command{nncp-freq} с 64 на 160,
875 для @command{nncp-file} с 196 на 224.
880 @subsection Релиз 3.2
883 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
884 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
885 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
886 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
887 Явное добавление @file{NNCP/} директории в архив восстанавливает
888 работоспособность с корректными tar архивами.
892 @subsection Релиз 3.1
895 Возможность отключать пересылку через промежуточные ноды используя
896 @verb{|-via -|} опцию командной строки.
900 @subsection Релиз 3.0
904 @strong{Несовместимое} изменение формата простых пакетов. Работа со
905 старыми версиями не поддерживается.
908 Добавлена возможность удалённого исполнения команд, путём
909 конфигурирования @option{exec} опции конфигурационного файла и
910 использования команды @command{nncp-exec}:
913 Команда @command{nncp-mail} заменена более гибкой и широкой
914 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
915 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
917 @option{sendmail} опция конфигурационного файла заменена на более гибкую
918 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
923 Возможность переопределить @option{via} опцию конфигурации для целевого
924 узла через @option{-via} опцию командной строки для следующих команд:
925 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
928 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
932 Exec команды вызываются с дополнительными переменными окружения
933 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
936 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
937 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
938 аргументом @option{-replynice}.
941 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
942 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
943 @option{-noexec}, @option{-notrns}.
946 По-умолчанию @command{nncp-file} команда для
947 @option{-minsize}/@option{-chunked} опций использует
948 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
949 Это можно отключить указав нулевое значение.
954 @subsection Релиз 2.0
958 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
959 Работа со старыми версиями не поддерживается.
962 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
963 Одним криптографическим примитивом меньше.
966 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
967 криптографическим примитивом меньше (предполагая, что BLAKE2X
968 практически идентичен BLAKE2).
973 @subsection Релиз 1.0
977 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
978 со старыми версиями не поддерживается.
981 @command{nncp-bundle} команда может создавать потоки зашифрованных
982 пакетов или потреблять их. Это полезно когда речь идёт о
983 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
984 без создания промежуточного подготовленного ISO образа или работа с
985 ленточными накопителями).
988 @command{nncp-toss} команда может создавать @file{.seen} файлы,
989 предотвращая приём дублированных пакетов.
992 В команде @command{nncp-call} разрешается иметь только одного
993 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
994 входящих пакетов могут создать много горутин.
997 Возможность переопределить путь до spool директории и файла журнала
998 через аргумент командной строки или переменную окружения.
1001 @command{nncp-rm} команда может удалять все исходящие/входящие,
1002 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
1007 @subsection Релиз 0.12
1009 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
1013 @subsection Релиз 0.11
1015 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
1019 @subsection Релиз 0.10
1022 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
1023 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
1027 @subsection Релиз 0.9
1030 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
1031 команды. Они игнорировались.
1035 @subsection Релиз 0.8
1038 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
1039 @option{-minsize} для передачи без разбиения на части была в байтах, а
1044 @subsection Релиз 0.7
1048 Возможность предоставлять данные для @command{nncp-file} через
1049 стандартный ввод, используя временный зашифрованный файл для этого.
1052 Появилась возможность передачи файлов разбитых на части, с сопутствующей
1053 @command{nncp-reass} командой и @option{freqchunked} опцией
1054 конфигурационного файла. Полезно для передачи больших файлов через
1055 маленькие устройства хранения.
1058 @option{freqminsize} опция конфигурационного файла, аналогичная
1062 Опция @option{-force} команды @command{nncp-xfer} переименована в
1063 @option{-mkdir} для ясности.
1066 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1069 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1070 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1071 имели общий префикс и были сгруппированы для удобства.
1074 Появилась команда @command{nncp-cfgenc}, позволяющая
1075 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1076 без использования OpenPGP или других подобных инструментов.
1079 Обновлены зависимые криптографические библиотеки.
1084 @subsection Релиз 0.6
1086 @item Появилась небольшая команда @command{nncp-rm}.
1087 @item Обновлены зависимые криптографические библиотеки.
1091 @subsection Релиз 0.5
1094 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1095 @command{nncp-file} и @command{nncp-freq} командах.
1099 @subsection Релиз 0.4
1103 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1104 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1105 ошибкой (данные не терялись).
1108 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1109 это короче и удобнее для использования.
1112 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1113 позволяющая создать минималистичный урезанный конфигурационный файл без
1114 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1119 @subsection Релиз 0.3
1121 @item Исправлена совместимость с Go 1.6.
1125 @subsection Релиз 0.2
1129 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1130 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1133 @option{-minsize} опция даёт возможность автоматически дополнять
1134 исходящие пакеты до указанного минимального размера.
1137 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1138 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1139 Удалённая сторона сразу же оповещается об этом.
1142 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1143 неактивность в online соединении, когда оно должно быть отключено. Она
1144 может быть использована для сохранения соединения на долгое время.
1147 @option{-maxonlinetime} опция даёт возможность указания максимального
1148 возможного времени жизни соединения.
1151 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1155 @command{nncp-pkt} команда может разжимать данные.