@node Релиз 5.0.0
@subsection Релиз 5.0.0
@itemize
-@item @strong{Несовместимое} изменение формата конфигурационного файла:
- YAML заменён на Hjson, из-за его гораздо большей простоты, без
- заметного потеря функционала и удобства.
-@item @strong{Несовместимое} изменение формата простых пакетов. Работа
- со старыми версиями не поддерживается. @code{zlib} сжатие заменено
- на @code{Zstandard}, так как оно значительно быстрее и эффективнее,
- не смотря на то, что версия библиотеки ещё не проверена временем.
-@item @command{nncp-cfgnew} генерирует конфигурационный файл с
- множеством комментариев. Можно использовать @option{-nocomments}
- опцию для старого поведения.
-@item Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо
- @file{CTR}, чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
-@item По умолчанию файлы и директории создаются с 666/777 правами
- доступа, позволяя управлять ими @command{umask}-ом.
-@item Обновлены зависимости.
-@item Полное использование go модулей для управления зависимостями
- (используется @code{go.cypherpunks.ru/nncp/v5} namespace).
-@item Отмена автоматического использования более новых версий GNU GPL
- (лицензия проекта GNU GPLv3-только).
+
+@item
+@strong{Несовместимое} изменение формата конфигурационного файла:
+YAML заменён на Hjson, из-за его гораздо большей простоты, без
+заметного потеря функционала и удобства.
+
+@item
+@strong{Несовместимое} изменение формата простых пакетов. Работа со
+старыми версиями не поддерживается. @code{zlib} сжатие заменено на
+@code{Zstandard}, так как оно значительно быстрее и эффективнее, не
+смотря на то, что версия библиотеки ещё не проверена временем.
+
+@item
+@command{nncp-cfgnew} генерирует конфигурационный файл с множеством
+комментариев. Можно использовать @option{-nocomments} опцию для старого
+поведения.
+
+@item
+Дубликаты имён файлов имеют суффикс @file{.CTR}, вместо @file{CTR},
+чтобы избежать возможных коллизий с @file{.nncp.chunkCTR}.
+
+@item
+По умолчанию файлы и директории создаются с 666/777 правами доступа,
+позволяя управлять ими @command{umask}-ом.
+
+@item
+Обновлены зависимости.
+
+@item
+Полное использование go модулей для управления зависимостями
+(используется @code{go.cypherpunks.ru/nncp/v5} namespace).
+
+@item
+Отмена автоматического использования более новых версий GNU GPL
+(лицензия проекта GNU GPLv3-только).
+
@end itemize
@node Релиз 4.1
@subsection Релиз 4.1
@itemize
-@item
-Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
+@item Восстановлена работоспособность на GNU/Linux системах и Go версии 1.10.
@end itemize
@node Релиз 4.0
@subsection Релиз 4.0
@itemize
+
@item
@strong{Несовместимое} изменение формата зашифрованных и eblob пакетов:
используется AEAD режим шифрования с 128 КиБ блоками, так как раньше
@command{nncp-toss} не проверял MAC зашифрованного пакета прежде чем
отсылать дешифрованные данные внешней команде. Старые версии не
поддерживаются.
+
@item
Проверка доступного места перед копированием во время работы
@command{nncp-xfer}, @command{nncp-daemon}, @command{nncp-call(er)}.
+
@item
@command{nncp-call} имеет возможность только показывать список пакетов
на удалённой машине, без их передачи.
+
@item
@command{nncp-call} имеет возможность передавать только чётко указанные пакеты.
+
@item
Восстановлена работоспособность @option{xxrate} настройки в
@option{calls} секции конфигурационного файла.
+
@item
Зависимые библиотеки обновлены.
+
@item
Небольшие исправления ошибок.
+
@item
Начало использования @code{go.mod} подсистемы.
+
@end itemize
@node Релиз 3.4
@subsection Релиз 3.4
@itemize
-@item
-@command{nncp-daemon} может быть запущен как @command{inetd}-служба.
+@item @command{nncp-daemon} может быть запущен как @command{inetd}-служба.
@end itemize
@node Релиз 3.3
@subsection Релиз 3.3
@itemize
+
@item
@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}
проверяют существование @file{.seen} файла и расценивают его как то, что
файл уже был скачан. Возможно передача данных была осуществлена
сторонним способом и удалённая сторона должна быть оповещена об этом.
+
@item
Если более высокоприоритетный пакет попадает в спул, то
@command{nncp-daemon} добавит его в очередь отправки первым, прерывая
низкоприоритетные передачи.
+
@item
К средствам связанным с online-соединениями (@command{nncp-daemon},
@command{nncp-call}, @command{nncp-caller}) добавлен простой
ограничитель скорости.
+
@item
Возможность задания приоритета символьными обозначениями:
@verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, итд.
+
@item
Изменены значения приоритетов по-умолчанию:
для @command{nncp-exec} с 64 на 96,
для @command{nncp-freq} с 64 на 160,
для @command{nncp-file} с 196 на 224.
+
@end itemize
@node Релиз 3.2
@node Релиз 3.0
@subsection Релиз 3.0
@itemize
+
@item
@strong{Несовместимое} изменение формата простых пакетов. Работа со
старыми версиями не поддерживается.
+
@item
Добавлена возможность удалённого исполнения команд, путём
конфигурирования @option{exec} опции конфигурационного файла и
@option{exec}. @verb{|sendmail: [...]|} нужно заменить на @verb{|exec:
sendmail: [...]|}.
@end itemize
+
@item
Возможность переопределить @option{via} опцию конфигурации для целевого
узла через @option{-via} опцию командной строки для следующих команд:
@command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
+
@item
Chunked файлы, меньшего размера чем указанный chunk, отправляются просто
в виде одного файла.
+
@item
Exec команды вызываются с дополнительными переменными окружения
@env{NNCP_NICE} и @env{NNCP_SELF}.
+
@item
Отправляемые файлы в ответ на запрос имеют приоритет указанный в запросе.
Указать их желаемый приоритет во время вызова @command{nncp-freq} можно
аргументом @option{-replynice}.
+
@item
Команде @command{nncp-toss} можно сказать не обрабатывать определённые
типы пакетов, за счёт опций @option{-nofile}, @option{-nofreq},
@option{-noexec}, @option{-notrns}.
+
@item
По-умолчанию @command{nncp-file} команда для
@option{-minsize}/@option{-chunked} опций использует
@option{FreqMinSize}/@option{FreqChunked} из конфигурационного файла.
Это можно отключить указав нулевое значение.
+
@end itemize
@node Релиз 2.0
@subsection Релиз 2.0
@itemize
+
@item
@strong{Несовместимое} изменение формата зашифрованных и eblob пакетов.
Работа со старыми версиями не поддерживается.
+
@item
Алгоритм шифрования Twofish заменён на ChaCha20. Он намного быстрее.
Одним криптографическим примитивом меньше.
+
@item
HKDF-BLAKE2b-256 KDF алгоритм заменён на BLAKE2Xb XOF. Ещё одним
криптографическим примитивом меньше (предполагая, что BLAKE2X
практически идентичен BLAKE2).
+
@end itemize
@node Релиз 1.0
@subsection Релиз 1.0
@itemize
+
@item
@strong{Несовместимое} изменение формата зашифрованных пакетов. Работа
со старыми версиями не поддерживается.
+
@item
@command{nncp-bundle} команда может создавать потоки зашифрованных
пакетов или потреблять их. Это полезно когда речь идёт о stdin/stdout
методах передачи (например запись на CD-ROM без создания промежуточного
подготовленного ISO образа или работа с ленточными накопителями).
+
@item
@command{nncp-toss} команда может создавать @file{.seen} файлы,
предотвращая приём дублированных пакетов.
+
@item
В команде @command{nncp-call} разрешается иметь только одного
обработчика контрольной суммы в фоне. Это полезно когда тысячи маленьких
входящих пакетов могут создать много горутин.
+
@item
Возможность переопределить путь до spool директории и файла журнала
через аргумент командной строки или переменную окружения.
+
@item
@command{nncp-rm} команда может удалять все исходящие/входящие,
@file{.seen}, @file{.part}, @file{.lock} и временные файлы.
+
@end itemize
@node Релиз 0.12
@subsection Релиз 0.12
@itemize
-@item
-Команда sendmail вызывается с @env{NNCP_SENDER} переменной окружения.
+@item Команда sendmail вызывается с @env{NNCP_SENDER} переменной окружения.
@end itemize
@node Релиз 0.11
@subsection Релиз 0.11
@itemize
-@item
-Вывод команды @command{nncp-stat} отсортирован по имени ноды.
+@item Вывод команды @command{nncp-stat} отсортирован по имени ноды.
@end itemize
@node Релиз 0.10
@node Релиз 0.7
@subsection Релиз 0.7
@itemize
+
@item
Возможность предоставлять данные для @command{nncp-file} через
стандартный ввод, используя временный зашифрованный файл для этого.
а @command{nncp-mincfg} в @command{nncp-cfgmin}, для того чтобы они
имели общий префикс и были сгруппированы для удобства.
-@item Появилась команда @command{nncp-cfgenc}, позволяющая
+@item
+Появилась команда @command{nncp-cfgenc}, позволяющая
шифровать/дешифровать конфигурационный файл, чтобы безопасно его хранить
без использования OpenPGP или других подобных инструментов.
@item
Обновлены зависимые криптографические библиотеки.
+
@end itemize
@node Релиз 0.6
@node Релиз 0.5
@subsection Релиз 0.5
@itemize
-@item Тривиальное небольшое исправление в значениях приоритетов
-по-умолчанию в @command{nncp-file} и @command{nncp-freq} командах.
+@item
+Тривиальное небольшое исправление в значениях приоритетов по-умолчанию в
+@command{nncp-file} и @command{nncp-freq} командах.
@end itemize
@node Релиз 0.4
@subsection Релиз 0.4
@itemize
-@item Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
+
+@item
+Небольшое исправление в @command{nncp-call}, @command{nncp-caller},
@command{nncp-daemon}: иногда они могли падать с segmentation fault
ошибкой (данные не терялись).
-@item @command{nncp-newnode} переименована в @command{nncp-newcfg} --
+
+@item
+@command{nncp-newnode} переименована в @command{nncp-newcfg} --
это короче и удобнее для использования.
-@item Появилась команда @command{nncp-mincfg}: вспомогательная утилита
+
+@item
+Появилась команда @command{nncp-mincfg}: вспомогательная утилита
позволяющая создать минималистичный урезанный конфигурационный файл без
приватных ключей, что полезно во время использования @command{nncp-xfer}.
+
@end itemize
@node Релиз 0.3
@subsection Релиз 0.3
-Исправлена совместимость с Go 1.6.
+@itemize
+@item Исправлена совместимость с Go 1.6.
+@end itemize
@node Релиз 0.2
@subsection Релиз 0.2
@itemize
-@item @strong{Несовместимое} изменение формата пакета (магическое число
-тоже изменено): поле размера пакета шифруется и не посылается в открытом
-виде.
-@item @option{-minsize} опция даёт возможность автоматически дополнять
+
+@item
+@strong{Несовместимое} изменение формата пакета (магическое число тоже
+изменено): поле размера пакета шифруется и не посылается в открытом виде.
+
+@item
+@option{-minsize} опция даёт возможность автоматически дополнять
исходящие пакеты до указанного минимального размера.
-@item @command{nncp-daemon} и
-@command{nncp-call}/@command{nncp-caller} всегда в фоне проверяют появление
-исходящих @emph{tx} пакетов пока подключены. Удалённая сторона сразу же
-оповещается об этом.
-@item @option{-onlinedeadline} опция даёт возможность выставления
-timeout-а на неактивность в online соединении, когда оно должно быть
-отключено. Она может быть использована для сохранения соединения на
-долгое время.
-@item @option{-maxonlinetime} опция даёт возможность указания
-максимального возможного времени жизни соединения.
-@item Появилась @command{nncp-caller} команда: клиент TCP-демона
-работающий по cron-у.
-@item @command{nncp-pkt} команда может разжимать данные.
+
+@item
+@command{nncp-daemon} и @command{nncp-call}/@command{nncp-caller} всегда
+в фоне проверяют появление исходящих @emph{tx} пакетов пока подключены.
+Удалённая сторона сразу же оповещается об этом.
+
+@item
+@option{-onlinedeadline} опция даёт возможность выставления timeout-а на
+неактивность в online соединении, когда оно должно быть отключено. Она
+может быть использована для сохранения соединения на долгое время.
+
+@item
+@option{-maxonlinetime} опция даёт возможность указания максимального
+возможного времени жизни соединения.
+
+@item
+Появилась @command{nncp-caller} команда: клиент TCP-демона работающий по
+cron-у.
+
+@item
+@command{nncp-pkt} команда может разжимать данные.
+
@end itemize
@node Release 5.0.0
@section Release 5.0.0
@itemize
-@item @strong{Incompatible} configuration file format change: YAML is
- replaced with Hjson, due to its simplicity, without noticeable lack
- of either functionality or convenience.
+
+@item
+@strong{Incompatible} configuration file format change: YAML is
+replaced with Hjson, due to its simplicity, without noticeable lack
+of either functionality or convenience.
+
+@item
@strong{Incompatible} plain packet format changes. Older versions are
- not supported. @code{zlib} compression is replaced with
- @code{Zstandard}, due to its speed and efficiency, however library
- version is not mature enough.
-@item @command{nncp-cfgnew} generates configuration file with many
- comments. @option{-nocomments} option can be used for an old
- behaviour.
-@item Duplicate filenames have @file{.CTR} suffix, instead of
- @file{CTR}, to avoid possible collisions with @file{.nncp.chunkCTR}.
-@item Files and directories are created with 666/777 permissions by
- default, allowing control with @command{umask}.
-@item Updated dependencies.
-@item Full usage of go modules for dependencies management
- (@code{go.cypherpunks.ru/nncp/v5} namespace is used).
-@item Forbid any later GNU GPL version autousage
- (project's licence now is GNU GPLv3-only).
+not supported. @code{zlib} compression is replaced with
+@code{Zstandard}, due to its speed and efficiency, despite library
+version is not mature enough.
+
+@item
+@command{nncp-cfgnew} generates configuration file with many
+comments. @option{-nocomments} option can be used for an old
+behaviour.
+
+@item
+Duplicate filenames have @file{.CTR} suffix, instead of @file{CTR}, to
+avoid possible collisions with @file{.nncp.chunkCTR}.
+
+@item
+Files and directories are created with 666/777 permissions by default,
+allowing control with @command{umask}.
+
+@item
+Updated dependencies.
+
+@item
+Full usage of go modules for dependencies management
+(@code{go.cypherpunks.ru/nncp/v5} namespace is used).
+
+@item
+Forbid any later GNU GPL version autousage
+(project's licence now is GNU GPLv3-only).
+
@end itemize
@node Release 4.1
@section Release 4.1
@itemize
-@item
-Workability on GNU/Linux systems and Go 1.10 is fixed.
+@item Workability on GNU/Linux systems and Go 1.10 is fixed.
@end itemize
@node Release 4.0
@section Release 4.0
@itemize
+
@item
@strong{Incompatible} encrypted and eblob packet format change: AEAD
encryption mode with 128 KiB blocks is used now, because previously
@command{nncp-toss} did not verify encrypted packet's MAC before feeding
decrypted data to external command. Older versions are not supported.
+
@item
Available free space checking before copying in @command{nncp-xfer},
@command{nncp-daemon}, @command{nncp-call(er)}.
+
@item
@command{nncp-call} has ability only to list packets on remote node,
without their transmission.
+
@item
@command{nncp-call} has ability to transfer only specified packets.
+
@item
Workability of @option{xxrate} preference in @option{calls}
configuration file section.
+
@item
Dependant libraries are updated.
+
@item
Minor bugfixes.
+
@item
Begin using of @code{go.mod} subsystem.
+
@end itemize
@node Release 3.4
@section Release 3.4
@itemize
-@item
-@command{nncp-daemon} can be run as @command{inetd}-service.
+@item @command{nncp-daemon} can be run as @command{inetd}-service.
@end itemize
@node Release 3.3
@section Release 3.3
@itemize
+
@item
@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller} check
if @file{.seen} exists and treat it like file was already downloaded.
Possibly it was transferred out-of-bound and remote side needs to be
notifier about that.
+
@item
If higher priority packet is spooled, then @command{nncp-daemon} will
queue its sending first, interrupting lower priority transmissions.
+
@item
Simple packet rate limiter added to online-related tools
(@command{nncp-daemon}, @command{nncp-call}, @command{nncp-caller}).
+
@item
Ability to specify niceness with symbolic notation:
@verb{|NORMAL|}, @verb{|BULK+10|}, @verb{|PRIORITY-5|}, etc.
+
@item
Changed default niceness levels:
for @command{nncp-exec} from 64 to 96,
for @command{nncp-freq} from 64 to 160,
for @command{nncp-file} from 196 to 224.
+
@end itemize
@node Release 3.2
@node Release 3.0
@section Release 3.0
@itemize
+
@item
@strong{Incompatible} plain packet format changes. Older versions are
not supported.
+
@item
Ability to queue remote command execution, by configuring @option{exec}
option in configuration file and using @command{nncp-exec} command:
@option{exec}. @verb{|sendmail: [...]|} must be replaced with
@verb{|exec: sendmail: [...]|}.
@end itemize
+
@item
Ability to override @option{via} configuration option for destination
node via @option{-via} command line option for following commands:
@command{nncp-file}, @command{nncp-freq}, @command{nncp-exec}.
+
@item
Chunked files, having size less than specified chunk size, will be sent
as an ordinary single file.
+
@item
Exec commands are invoked with additional @env{NNCP_NICE} and
@env{NNCP_SELF} environment variables.
+
@item
Files, that are sent as a reply to freq, have niceness level taken from
the freq packet. You can set desired niceness during @command{nncp-freq}
invocation using @option{-replynice} option.
+
@item
@command{nncp-toss} command can ignore specified packet types during
processing: @option{-nofile}, @option{-nofreq}, @option{-noexec},
@option{-notrns}.
+
@item
@command{nncp-file} command uses
@option{FreqMinSize}/@option{FreqChunked} configuration file options
for @option{-minsize}/@option{-chunked} by default. You can turn this
off by specifying zero value.
+
@end itemize
@node Release 2.0
@section Release 2.0
@itemize
+
@item
@strong{Incompatible} encrypted/eblob packet format changes. Older
versions are not supported.
+
@item
Twofish encryption algorithm is replaced with ChaCha20. It is much more
faster. One cryptographic primitive less.
+
@item
HKDF-BLAKE2b-256 KDF algorithm is replaced with BLAKE2Xb XOF. Yet
another cryptographic primitive less (assuming that BLAKE2X is nearly
identical to BLAKE2).
+
@end itemize
@node Release 1.0
@section Release 1.0
@itemize
+
@item
@strong{Incompatible} encrypted packet format changes. Older versions
are not supported.
+
@item
@command{nncp-bundle} command can either create stream of encrypted
packets, or digest it. It is useful when dealing with stdin/stdout based
transmission methods (like writing to CD-ROM without intermediate
prepared ISO image and working with tape drives).
+
@item
@command{nncp-toss} is able to create @file{.seen} files preventing
duplicate packets receiving.
+
@item
Single background checksum verifier worker is allowed in
@command{nncp-call}. This is helpful when thousands of small inbound
packets could create many goroutines.
+
@item
Ability to override path to spool directory and logfile through either
command line argument, or environment variable.
+
@item
@command{nncp-rm} is able to delete outbound/inbound, @file{.seen},
@file{.part}, @file{.lock} and temporary files.
+
@end itemize
@node Release 0.12
@section Release 0.12
@itemize
-@item
-Sendmail command is called with @env{NNCP_SENDER} environment variable.
+@item Sendmail command is called with @env{NNCP_SENDER} environment variable.
@end itemize
@node Release 0.11
@section Release 0.11
@itemize
-@item
-@command{nncp-stat}'s command output is sorted by node name.
+@item @command{nncp-stat}'s command output is sorted by node name.
@end itemize
@node Release 0.10
@node Release 0.7
@section Release 0.7
@itemize
+
@item
Ability to feed @command{nncp-file} from stdin, that uses an encrypted
temporary file for that.
@item
Cryptographic libraries (dependencies) are updated.
+
@end itemize
@node Release 0.6
@node Release 0.5
@section Release 0.5
@itemize
-@item Trivial small fix in default niceness level of @command{nncp-file}
+@item
+Trivial small fix in default niceness level of @command{nncp-file}
and @command{nncp-freq} commands.
@end itemize
@node Release 0.4
@section Release 0.4
@itemize
-@item Small fix in @command{nncp-call}, @command{nncp-caller},
+
+@item
+Small fix in @command{nncp-call}, @command{nncp-caller},
@command{nncp-daemon}: they can segmentation fail sometimes (no data is
lost).
-@item @command{nncp-newnode} renamed to @command{nncp-newcfg} -- it is
-shorter and more convenient to use.
-@item @command{nncp-mincfg} command appeared: helper allowing to create
-minimalistic stripped down configuration file without private keys,
-that is useful during @command{nncp-xfer} usage.
+
+@item
+@command{nncp-newnode} renamed to @command{nncp-newcfg} -- it is shorter
+and more convenient to use.
+
+@item
+@command{nncp-mincfg} command appeared: helper allowing to create
+minimalistic stripped down configuration file without private keys, that
+is useful during @command{nncp-xfer} usage.
+
@end itemize
@node Release 0.3
@section Release 0.3
-Fixed compatibility with Go 1.6.
+@itemize
+@item Fixed compatibility with Go 1.6.
+@end itemize
@node Release 0.2
@section Release 0.2
@itemize
-@item @strong{Incompatible} packet's format change (magic number is
-changed too): size field is encrypted and is not send in plaintext
-anymore.
-@item @option{-minsize} option gives ability to automatically pad
-outgoing packets to specified minimal size.
-@item @command{nncp-daemon} and
-@command{nncp-call}/@command{nncp-caller} always check new @emph{tx}
-packets appearance in the background while connected. Remote side is
-immediately notified.
-@item @option{-onlinedeadline} option gives ability to configure timeout
-of inactivity of online connection, when it could be disconnected. It
-could be used to keep connection alive for a long time.
-@item @option{-maxonlinetime} option gives ability to set maximal
-allowable online connection aliveness time.
-@item @command{nncp-caller} command appeared: cron-ed TCP daemon caller.
-@item @command{nncp-pkt} command can decompress the data.
+
+@item
+@strong{Incompatible} packet's format change (magic number is changed
+too): size field is encrypted and is not send in plaintext anymore.
+
+@item
+@option{-minsize} option gives ability to automatically pad outgoing
+packets to specified minimal size.
+
+@item
+@command{nncp-daemon} and @command{nncp-call}/@command{nncp-caller}
+always check new @emph{tx} packets appearance in the background while
+connected. Remote side is immediately notified.
+
+@item
+@option{-onlinedeadline} option gives ability to configure timeout of
+inactivity of online connection, when it could be disconnected. It could
+be used to keep connection alive for a long time.
+
+@item
+@option{-maxonlinetime} option gives ability to set maximal allowable
+online connection aliveness time.
+
+@item
+@command{nncp-caller} command appeared: cron-ed TCP daemon caller.
+
+@item
+@command{nncp-pkt} command can decompress the data.
+
@end itemize