5 @subsection Релиз 8.4.0
9 Имена интерфейсов относящихся к multicast (@code{mcd-listen} и
10 @code{mcd-send} опции конфигурации) теперь являются регулярными
11 выражениями. По умолчанию @command{nncp-cfgnew} не комментирует
12 их теперь и прописывает @code{.*} имя интерфейса.
15 У @command{nncp-call} команды появился @option{-mcd-wait} аргумент,
16 позволяющий дожидаться multicast сообщения об адресе ноды.
19 @command{nncp-file} команда пропускает всё что не является регулярным
20 файлом или директорией во время создания pax-архива.
25 @subsection Релиз 8.3.0
29 Исправлена возможность сборки на 32-бит системах.
34 @subsection Релиз 8.2.0
38 Yggdrasil использует IPv6+TCP сетевой стэк написанный полностью на Go,
39 вместо голого μTP транспортного протокола, делая возможным работу в
40 качестве обычного TCP сервера внутри overlay сети.
43 Конфигурационные строки Yggdrasil вида @code{prv;bind1,bind2;pub...}
44 заменены на URL-подобные (@code{yggdrasils://PRV?bind=BIND1&bind=BIND2&pub=PUB}).
47 Возможно передавать параметры Yggdrasil конфигурации связанные с multicast.
50 @command{nncp-daemon} может слушать одновременно и на TCP и на
51 Yggdrasil-управляемом сокетах.
54 Слушание на endpoint сокете для пиринга в @command{nncp-daemon}
55 опционально -- вы можете быть доступны и через связь с peer-ами.
60 @subsection Релиз 8.1.0
64 @command{nncp-cfgdir} команда не требует обязательного наличия
65 @code{self} секции конфигурационного файла.
68 Появилась возможность работы в качестве клиента overlay сети Yggdrasil,
69 используя online протокол поверх неё.
74 @subsection Релиз 8.0.2
78 Исправлена возможность отправки мультивещательных пакетов.
83 @subsection Релиз 8.0.1
87 Исправлено некорректное вычисление @code{freq.chunked} значения, при
88 отсутствии которого всё равно форсированно включалась chunked передача.
91 Исправлено некорректное вычисление значения полного размера файла в
97 @subsection Релиз 8.0.0
101 @strong{Несовместимое} изменение формата зашифрованных пакетов: размеры
102 полезной нагрузки и дополнения посылаются прямо внутри зашифрованного
103 потока. Это даёт возможность потоково создавать шифрованные пакеты, без
104 знания размеров заранее, без создания временного файла или буферизации в
108 Производится корректная проверка дополнения зашифрованного пакета. Это
109 не критичная проблема, но прежде ни размер, ни значение дополнения не
110 были аутентифицированы, позволяя циклично откусывать по байту с конца и
111 узнавать размер полезной нагрузки, наблюдая за реакцией по обработке
112 такого зашифрованного пакета.
115 @command{nncp-exec} больше не имеет @option{-use-tmp} опции, из-за
116 совместимого с потоковой работой формата зашифрованных пакетов.
119 У @command{nncp-file} и @command{nncp-exec} команд появилась опция
120 @option{-maxsize}, ограничивающая максимальный результирующий размер
121 зашифрованного пакета (возвращая ошибку если он превышен). Может быть
122 полезно, так как размер полезной нагрузки может быть неизвестен заранее.
127 @subsection Релиз 7.7.0
131 Экспериментальная поддержка @code{kqueue} и @code{inotify} оповещений об
132 изменениях в spool директориях, для сокращения накладных расходов на их
136 @file{.seen} и @file{.hdr} файлы находятся в @file{seen/} и @file{hdr/}
137 поддиректориях теперь, дабы ускорить сканирование spool областей.
138 Необходима миграция текущих файлов:
141 $ find $NNCPSPOOL -type f -name "*.hdr" -exec rm @{@} +
143 $ find $NNCPSPOOL -type d -name rx | while read rx ; do
146 find . -type f -name "*.seen" | while read fn ; do
147 mv $fn seen/$@{fn%.seen@}
151 $ find $NNCPSPOOL -type d -name area | while read area ; do
152 find $area -type f -name "*.seen" | while read fn ; do
161 @subsection Релиз 7.6.0
165 Журналирование может производиться в назначенный открытый файловый
166 дескриптор (@env{$NNCPLOG=FD:5} например).
167 Что дружелюбно к использованию под @command{daemontools}.
170 Добавлены дополнительные проверки наличия публичных ключей в
171 конфигурационном файле, предотвращающие падения некоторых команд.
176 @subsection Релиз 7.5.1
180 NNCP собирается на NetBSD.
185 @subsection Релиз 7.5.0
189 @command{nncp-daemon} соблюдает UCSPI-TCP интерфейс, благодаря чему в
190 журнале будет присутствовать адрес удалённой системы (при запуске под
191 совместимой утилитой). Желательно применять @option{-ucspi} опцию вместо
195 @command{nncp-call} может быть UCSPI-TCP клиентом, используя
196 @option{-ucspi} опцию.
199 Не выходить если не получается слушать на каком-либо MCD сетевом
200 интерфейсе -- только предупреждать об ошибке.
205 @subsection Релиз 7.4.0
209 Исправлена работоспособность MCD при одновременном использовании
210 @command{nncp-daemon} и @command{nncp-caller}.
215 @subsection Релиз 7.3.2
219 @command{hjson-cli} утилита теперь собирается в vendor-режиме.
224 @subsection Релиз 7.3.1
228 Исправлена проблема с возможно остающимся открытым файловым
229 дескриптором в online командах.
232 Существенно снижено потребление памяти MTH хэширования.
237 @subsection Релиз 7.3.0
241 Поправлены проблемы работоспособности на 32-бит системах с большими файлами.
244 Возможность использовать конфигурацию в виде директории с набором
245 файлов. Появилась команда @command{nncp-cfgdir}.
250 @subsection Релиз 7.2.1
254 Небольшие оптимизации в online командах.
259 @subsection Релиз 7.2.0
263 Появилась @command{nncp-trns} команда для ручного создания транзитных пакетов.
266 Если у целевой ноды транзитного пакета задан @option{via} маршрут, то
267 использовать его, а не игнорировать.
270 Не отправлять multicast пакет оригинатору сообщения, очевидно точно
271 видящего свой собственный пакет.
274 Намного меньшее потребление памяти во время MTH хэширования когда
275 смещение равно нулю: когда пакет не является докачиванием, а например
276 проверяется @command{nncp-check} командой.
281 @subsection Релиз 7.1.1
285 Исправлено падение при fsync директорий после создания @file{.seen} файлов.
290 @subsection Релиз 7.1.0
294 Появилась возможность мультивещательной (multicast) рассылки пакетов.
295 Реализовано всего лишь дополнительным типом простых пакетов и изменением
296 @command{nncp-toss}, @command{nncp-file} и @command{nncp-exec} команд.
299 Исправлена работоспособность @command{nncp-file} и @command{nncp-exec}
300 команд использующих временный файл (stdin и @option{-use-tmp}).
303 Исправлен пропадающий плохой код возврата в @command{nncp-exec} команде.
306 Исправлено некорректное генерирование @file{.hdr} при использовании
310 У @command{nncp-rm} команды появилась @option{-all} опция, применяемая
314 У @command{nncp-check} команды появилась @option{-cycle} опция, вводящая
315 проверку в бесконечный цикл.
318 У @command{nncp-rm} команды можно указывать alias-ы имён нод.
321 @command{nncp-pkt} может парсить @file{.hdr} файлы.
326 @subsection Релиз 7.0.0
330 Минимальная требуемая версия Go 1.13.
333 Хэширование с BLAKE3 на базе деревьев Меркле (Merkle Tree Hashing, MTH)
334 используется вместо BLAKE2b. Из-за этого, обратно @strong{несовместимое}
335 изменение формата шифрованных файлов (всего что находится в spool
336 области) и формата @file{.meta} файла при chunked передаче.
338 Текущая реализация далека от оптимальной: в ней нет распараллеливания
339 вычислений и имеет повышенное потребление памяти: около 512 KiB на
340 каждый 1 GiB данных файла. Будущая оптимизация производительности и
341 потребления памяти не должна привести к изменению формата пакетов. Но
342 это всё равно в несколько раз быстрее BLAKE2b.
345 Из-за использования MTH, докачиваемые в online режиме файлы потребуют
346 чтения с диска только предшествующей части, а не полностью всего файла,
350 Добавлена @command{nncp-hash} утилита для вычисления MTH хэша файла.
353 В шифрованных пакетах BLAKE2 KDF и XOF функции заменены на BLAKE3. Ещё
354 уменьшая количество примитивов. А также заголовок шифрованного файла
355 теперь является ассоциированными данными при шифровании.
358 MultiCast Discovery использует
359 @verb{|ff02::4e4e:4350|} адрес вместо @verb{|ff02::1|}.
362 @command{nncp-cfgenc} ошибочно трижды спрашивал парольную фразу при шифровании.
365 @command{nncp-stat} выводит сводку о частично скачанных пакетах.
368 Обновлены зависимые библиотеки.
373 @subsection Релиз 6.6.0
377 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}
378 ожидают завершения всех процессов фоновой проверки контрольных сумм,
379 после того как соединение закрыто.
382 Добавлена возможность определения адреса через multicast оповещение в
383 локальной сети, так называемый MCD (MultiCast Discovery).
388 @subsection Релиз 6.5.0
392 Исправлено падение в @command{nncp-daemon} когда SP рукопожатие не было успешно.
395 Исправлено возможное игнорирование плохого кода возврата автоматического tosser.
398 Исправлена гонка при закрытии файловых дескрипторов во время завершения
399 работы online протокола, которая могла привести к ошибке записи
400 принятого фрагмента пакета.
403 Убирать показ прогресса передачи пакетов когда вызов уже завершён в
404 @command{nncp-daemon}, @command{nncp-call} и @command{nncp-caller}.
409 @subsection Релиз 6.4.0
413 Исправлена возможная гонка в online протоколе, приводящая к падению
419 @subsection Релиз 6.3.0
423 Исправлено возможное падение программы во время показа прогресса online
429 @subsection Релиз 6.2.1
433 В трёх местах сообщений журналов по ошибке остались лишние @code{%s}.
438 @subsection Релиз 6.2.0
442 Возвращена работоспособность @option{-autotoss*} опций @command{nncp-caller}.
445 Очередной рефакторинг и упрощение системы журналирования.
446 Не должно быть видимых изменений для конечного пользователя.
451 @subsection Релиз 6.1.0
455 Оптимизация: большинство команд теперь не держат открытыми файловые
456 дескрипторы. Прежде вы легко могли выйти за пределы максимально
457 допустимого количества открытых файлов, если у вас было много пакетов в
461 Оптимизация: не закрывать файловый дескриптор файла который мы качаем.
462 Прежде каждый его кусочек приводил к дорогим open/close вызовам.
465 Скачиваемые в режиме online файлы теперь сохраняются с @file{.nock}
466 суффиксом (non-checksummed), ожидая пока либо @command{nncp-check}, либо
467 online демоны не выполнят проверку целостности.
470 Оптимизация: для файлов, скачивание которых не было продолжено, сразу же
471 вычисляет контрольная сумма, пропуская промежуточный @file{.nock} шаг.
474 Возможность хранения заголовков зашифрованных пакетов в @file{.hdr}
475 файлах, рядом с самими пакетами. Это может существенно повысить скорость
476 получения списка пакетов на файловых системах с большим размером блока.
481 @subsection Релиз 6.0.0
485 Журнал использует человеко-читаемый и легко обрабатываемый машиной
486 @url{https://www.gnu.org/software/recutils/, recfile} формат для своих
487 записей, вместо структурированных строчек RFC 3339. Старый формат
488 журналов не поддерживается @command{nncp-log}.
491 Работоспособность @option{-autotoss*} опции с @option{-inetd} режимом
492 @command{nncp-daemon}.
495 @option{when-tx-exists} опция вызова в конфигурационном файле позволяет
496 делать вызов только если имеются исходящие сообщения. Совмещённая с cron
497 выражением содержащим секунды, это можно использовать как возможность
498 вызова только при появлении исходящих пакетов.
501 @command{nncp-cronexpr} команда позволяет проверить корректность и
502 ожидаемый результат от указанного cron выражения.
507 @subsection Релиз 5.6.0
511 @option{-autotoss*} опции запускают tosser не после завершения вызова, а
512 во время него ежесекундно.
515 В @option{calls} секции конфигурации появились опции
516 @option{autotoss}, @option{autotoss-doseen},
517 @option{autotoss-nofile}, @option{autotoss-nofreq},
518 @option{autotoss-noexec}, @option{autotoss-notrns}.
519 Вы можете настраивать опции автоматического tosser для каждого вызова.
522 Использовать vendoring вместо переопределения @env{$GOPATH} во время
523 установки tarball, так как текущая минимальная версия Go это 1.12,
524 поддерживающая модули.
529 @subsection Релиз 5.5.1
533 Уважать @env{$BINDIR}, @env{$INFODIR} и @env{$DOCDIR} переменные окружения
534 в @file{config} во время установки.
539 @subsection Релиз 5.5.0
543 Исправления ошибок в @command{nncp-call(er)}/@command{nncp-daemon},
544 @command{nncp-bundle}, @command{nncp-stat} командах.
547 У команды @command{nncp-rm} появились @option{-dryrun} и @option{-older} опции.
550 У команды @command{nncp-exec} появились @option{-use-tmp} и
551 @option{-nocompress} опции. Несжатые пакеты не совместимы с предыдущими
555 У команд @command{nncp-call}, @command{nncp-caller} и @command{nncp-daemon}
556 появились @option{-autotoss*} опции для запуска tosser после завершения звонка.
559 Обновлены зависимые библиотеки. Минимальная требуемая версия Go 1.12.
564 @subsection Релиз 5.4.1
568 Исправлена ошибка с учётом @code{SENDMAIL} переменной при сборке.
573 @subsection Релиз 5.4.0
577 Обновлены зависимые библиотеки.
580 Система сборки переведена с Makefile-ов на @url{http://cr.yp.to/redo.html, redo}.
581 Это не должно повлиять на мейнтейнеров пакетов, так как минимальная
582 реализация @command{redo} включена в tarball.
587 @subsection Релиз 5.3.3
591 Больше различных проверок в коде на ошибки.
594 Обновлены зависимые библиотеки.
599 @subsection Релиз 5.3.2
603 Исправлена некорректная логика @option{onlinedeadline} timeout-а, при
604 котором соединение могло не учитывать факты прихода пакетов и обрывать
610 @subsection Релиз 5.3.1
614 Исправлена работоспособность @option{onlinedeadline} с адресами вызова
615 использующими внешние команды (@verb{#"|somecmd"#}).
618 @command{nncp-stat} имеет опцию @option{-pkt} показывающую информацию по
619 каждому пакету в spool.
624 @subsection Релиз 5.3.0
628 Сообщения прогресса содержат префикс, поясняющий выполняемое действие.
631 Исправлено не происходящее дополнение (padding) handshake сообщений.
634 Завершать все порождаемые в SP протоколе горутины, меньше утечек памяти.
637 SP протокол порождает меньше вызовов записей (соответственно, и TCP
641 Проверять @option{onlinedeadline} и @option{maxonlinetime} ежесекундно,
642 независимо от чтения из сокета (раз в 10 секунд в худшем случае).
645 Раз в минуту, если нет более никакого другого трафика, посылаются PING
646 пакеты в SP-соединении. Это позволит быстрее понимать что соединение
647 более не работоспособно.
650 @command{nncp-toss} использует lock-file для предотвращения
651 одновременной обработки зашифрованных пакетов.
656 @subsection Релиз 5.2.1
660 Исправлена обработка ошибки SP протокола, иногда вызывающая панику программы.
665 @subsection Релиз 5.2.0
669 Большинство команд по умолчанию показывают однострочный прогресс
670 выполнения операции. Появились @option{-progress}, @option{-noprogress}
671 опции командной строки, @option{noprogress} опция конфигурационного
675 Исправлен некорректный код возврата @command{nncp-check} команды,
676 который возвращал ошибку когда всё хорошо.
679 Проверка свободного места для пакетов, во время выполнения
680 @command{nncp-bundle -rx}.
685 @subsection Релиз 5.1.2
689 Исправлена @strong{критичная} уязвимость: аутентификация online нод
690 могла приводить к некорректной идентификации удалённой стороны, позволяя
691 скачивать чужие зашифрованные пакеты.
694 Исправлена ошибка: в новосозданных конфигурационных файлах, приватный
695 публичный ключ Noise были поменяны местами, что приводило к
696 невозможности online аутентификации нод.
699 Явная синхронизация (fsync) директорий для гарантированного
700 переименования файлов.
705 @subsection Релиз 5.1.1
709 Исправлена работоспособность @command{nncp-file} с @option{-chunked 0} опцией.
714 @subsection Релиз 5.1.0
718 @command{nncp-file} может отправлять директории, автоматически на лету
722 Во время создания исходящих сообщений проверяется наличие свободного
723 места на файловой системе.
726 @option{freq}, @option{freqminsize}, @option{freqchunked} опции
727 конфигурационного файла заменены на структуру
728 @option{freq: @{path: @dots{}, minsize: @dots{}, chunked: @dots{}@}}.
731 Добавлена @option{freq.maxsize} опция конфигурационного файл,
732 запрещающая ответ на файловый запрос больше заданного размера.
735 Возможность оповещения об успешно выполненных командах (exec) через
736 @option{notify.exec} опцию конфигурационного файла.
741 @subsection Релиз 5.0.0
745 @strong{Несовместимое} изменение формата конфигурационного файла:
746 YAML заменён на Hjson, из-за его гораздо большей простоты, без
747 заметной потери функционала и удобства.
750 @strong{Несовместимое} изменение формата простых пакетов. Работа со
751 старыми версиями не поддерживается. @code{zlib} сжатие заменено на
752 @code{Zstandard}, так как оно значительно быстрее и эффективнее, не
753 смотря на то, что версия библиотеки ещё не проверена временем.
756 Возможность соединяться с удалёнными нодами не только по TCP, но и через
757 pipe вызов сторонней команды.
760 @command{nncp-cfgnew} генерирует конфигурационный файл с множеством
761 комментариев. Можно использовать @option{-nocomments} опцию для старого
765 Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
766 чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
769 Возможность переопределить umask процесса через опцию конфигурационного
773 По умолчанию файлы и директории создаются с 666/777 правами доступа,
774 позволяя управлять ими @command{umask}-ом.
777 Обновлены зависимости.
780 Полное использование go модулей для управления зависимостями
781 (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
784 Отмена автоматического использования более новых версий GNU GPL
785 (лицензия проекта GNU GPLv3-только).
790 @subsection Релиз 4.1
792 @item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
796 @subsection Релиз 4.0
800 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
801 используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
802 @command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
803 отсылать дешифрованные данные внешней команде. Старые версии не
807 Проверка доступного места перед копированием во время работы
808 @command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
811 @command{nncp-call} имеет возможность только показывать список пакетов
812 на удалённой машине, без их передачи.
815 @command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
818 Восстановлена работоспособность @option{xxrate} настройки в
819 @option{calls} секции конфигурационного файла.
822 Зависимые библиотеки обновлены.
825 Небольшие исправления ошибок.
828 Начало использования @code{go.mod} подсистемы.
833 @subsection Релиз 3.4
835 @item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
839 @subsection Релиз 3.3
843 @command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
844 проверяют существование @file{.seen} файла и расценивают его как то, что
845 файл уже был скачан. Возможно передача данных была осуществлена
846 сторонним способом и удалённая сторона должна быть оповещена об этом.
849 Если более высокоприоритетный пакет попадает в спул, то
850 @command{nncp-daemon} добавит его в очередь отправки первым, прерывая
851 низкоприоритетные передачи.
854 К средствам связанным с online-соединениями (@command{nncp-daemon},
855 @command{nncp-call}, @command{nncp-caller}) добавлен простой
856 ограничитель скорости.
859 Возможность задания приоритета символьными обозначениями:
860 @verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
863 Изменены значения приоритетов по-умолчанию:
864 для @command{nncp-exec} с 64 на 96,
865 для @command{nncp-freq} с 64 на 160,
866 для @command{nncp-file} с 196 на 224.
871 @subsection Релиз 3.2
874 @strong{Несовместимое} изменение формата @emph{bundle} архивов и
875 работоспособность @command{nncp-bundle} команды с Go 1.10+. Bundle
876 должен быть корректным tar архивом, но Go 1.9 делал его недействительным
877 из-за длинных путей внутри. NNCP нечаянно был зависим от этой баги.
878 Явное добавление @file{NNCP/} директории в архив восстанавливает
879 работоспособность с корректными tar архивами.
883 @subsection Релиз 3.1
886 Возможность отключать пересылку через промежуточные ноды используя
887 @verb{|-via -|} опцию командной строки.
891 @subsection Релиз 3.0
895 @strong{Несовместимое} изменение формата простых пакетов. Работа со
896 старыми версиями не поддерживается.
899 Добавлена возможность удалённого исполнения команд, путём
900 конфигурирования @option{exec} опции конфигурационного файла и
901 использования команды @command{nncp-exec}:
904 Команда @command{nncp-mail} заменена более гибкой и широкой
905 @command{nncp-exec}. Вместо вызова @verb{|nncp-mail NODE RECIPIENT|}
906 нужно использовать @verb{|nncp-exec NODE sendmail RECIPIENT|}.
908 @option{sendmail} опция конфигурационного файла заменена на более гибкую
909 @option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
914 Возможность переопределить @option{via} опцию конфигурации для целевого
915 узла через @option{-via} опцию командной строки для следующих команд:
916 @command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
919 Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
923 Exec команды вызываются с дополнительными переменными окружения
924 @env{$NNCP_NICE} и @env{$NNCP_SELF}.
927 Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
928 Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
929 аргументом @option{-replynice}.
932 Команде @command{nncp-toss} можно сказать не обрабатывать определённые
933 типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
934 @option{-noexec}, @option{-notrns}.
937 По-умолчанию @command{nncp-file} команда для
938 @option{-minsize}/@option{-chunked} опций использует
939 @option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
940 Это можно отключить указав нулевое значение.
945 @subsection Релиз 2.0
949 @strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
950 Работа со старыми версиями не поддерживается.
953 Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
954 Одним криптографическим примитивом меньше.
957 HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
958 криптографическим примитивом меньше (предполагая, что BLAKE2X
959 практически идентичен BLAKE2).
964 @subsection Релиз 1.0
968 @strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
969 со старыми версиями не поддерживается.
972 @command{nncp-bundle} команда может создавать потоки зашифрованных
973 пакетов или потреблять их. Это полезно когда речь идёт о
974 @code{stdin}/@code{stdout} методах передачи (например запись на CD-ROM
975 без создания промежуточного подготовленного ISO образа или работа с
976 ленточными накопителями).
979 @command{nncp-toss} команда может создавать @file{.seen} файлы,
980 предотвращая приём дублированных пакетов.
983 В команде @command{nncp-call} разрешается иметь только одного
984 обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
985 входящих пакетов могут создать много горутин.
988 Возможность переопределить путь до spool директории и файла журнала
989 через аргумент командной строки или переменную окружения.
992 @command{nncp-rm} команда может удалять все исходящие/входящие,
993 @file{.seen}, @file{.part}, @file{.lock} и временные файлы.
998 @subsection Релиз 0.12
1000 @item Команда sendmail вызывается с @env{$NNCP_SENDER} переменной окружения.
1004 @subsection Релиз 0.11
1006 @item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
1010 @subsection Релиз 0.10
1013 @file{DST} аргумент @command{nncp-freq} команды теперь опционален.
1014 По-умолчанию будет подставлен последний элемент @file{SRC} пути.
1018 @subsection Релиз 0.9
1021 Исправлена обработка @option{-rx}/@option{-tx} опций @command{nncp-call}
1022 команды. Они игнорировались.
1026 @subsection Релиз 0.8
1029 Небольшое исправление ошибки в команде @command{nncp-file}, где опция
1030 @option{-minsize} для передачи без разбиения на части была в байтах, а
1035 @subsection Релиз 0.7
1039 Возможность предоставлять данные для @command{nncp-file} через
1040 стандартный ввод, используя временный зашифрованный файл для этого.
1043 Появилась возможность передачи файлов разбитых на части, с сопутствующей
1044 @command{nncp-reass} командой и @option{freqchunked} опцией
1045 конфигурационного файла. Полезно для передачи больших файлов через
1046 маленькие устройства хранения.
1049 @option{freqminsize} опция конфигурационного файла, аналогичная
1053 Опция @option{-force} команды @command{nncp-xfer} переименована в
1054 @option{-mkdir} для ясности.
1057 Опция @option{-minsize} задаётся в KiB, а не байтах, для удобства.
1060 Команда @command{nncp-newcfg} переименована в @command{nncp-cfgnew},
1061 а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
1062 имели общий префикс и были сгруппированы для удобства.
1065 Появилась команда @command{nncp-cfgenc}, позволяющая
1066 шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
1067 без использования OpenPGP или других подобных инструментов.
1070 Обновлены зависимые криптографические библиотеки.
1075 @subsection Релиз 0.6
1077 @item Появилась небольшая команда @command{nncp-rm}.
1078 @item Обновлены зависимые криптографические библиотеки.
1082 @subsection Релиз 0.5
1085 Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
1086 @command{nncp-file} и @command{nncp-freq} командах.
1090 @subsection Релиз 0.4
1094 Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
1095 @command{nncp-daemon}: иногда они могли падать с segmentation fault
1096 ошибкой (данные не терялись).
1099 @command{nncp-newnode} переименована в @command{nncp-newcfg} --
1100 это короче и удобнее для использования.
1103 Появилась команда @command{nncp-mincfg}: вспомогательная утилита
1104 позволяющая создать минималистичный урезанный конфигурационный файл без
1105 приватных ключей, что полезно во время использования @command{nncp-xfer}.
1110 @subsection Релиз 0.3
1112 @item Исправлена совместимость с Go 1.6.
1116 @subsection Релиз 0.2
1120 @strong{Несовместимое} изменение формата пакета (магическое число тоже
1121 изменено): поле размера пакета шифруется и не посылается в открытом виде.
1124 @option{-minsize} опция даёт возможность автоматически дополнять
1125 исходящие пакеты до указанного минимального размера.
1128 @command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
1129 в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
1130 Удалённая сторона сразу же оповещается об этом.
1133 @option{-onlinedeadline} опция даёт возможность выставления timeout-а на
1134 неактивность в online соединении, когда оно должно быть отключено. Она
1135 может быть использована для сохранения соединения на долгое время.
1138 @option{-maxonlinetime} опция даёт возможность указания максимального
1139 возможного времени жизни соединения.
1142 Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
1146 @command{nncp-pkt} команда может разжимать данные.