]> Sergey Matveev's repositories - stargrave-blog.git/commitdiff
Релиз NNCP 3.0!
authorSergey Matveev <stargrave@stargrave.org>
Sat, 17 Feb 2018 20:55:36 +0000 (23:55 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Sun, 18 Feb 2018 17:08:49 +0000 (20:08 +0300)
https://lists.cypherpunks.ru/pipermail/nncp-devel/2018-February/000064.html
Очень крупное изменение произошло: теперь можно выполнять удалённые
команды, а не только отправлять файлы, запросы на файлы и почту.

На самом деле, почта отсылается просто как список аргументов и то, что
должно быть подано на stdin указанной команде. Если в качестве команды
указать sendmail, то будет отсылка почты. Но можно передавать и любую
другую. Проблема в том, что если хочется сделать несколько возможных
"точек входа" для исполнения команды, то пришлось бы создавать мнимые
промежуточные ноды, где в каждой sendmail будет отличаться.

В новом релизе теперь вместо одного sendmail можно указывать словарь с
ключами -- handle-ами, точками входа, а в качестве их значения всё те же
самые списки аргументов для вызова команды.

    sendmail: [...]

превращается в:

    exec:
        sendmail: [...]

а команда nncp-mail NODE RECIPIENT превращается в
nncp-exec NODE sendmail RECIPIENT.

Для чего мне это так надо было? Я хочу запрашивать чтобы удалённая
машина скачивала большие файлы или целые сайты, а в ответ в виде файла
их присылала назад. Я делал мнимую ноду до которой хожу через Via и у
которой sendmail был выставлен в вызов скрипта скачивания. Теперь не
надо.

Есть и мелочи:

* по-умолчанию nncp-file учитывает freqchunked/freqminsize опции ноды на
  которую мы шлём файл. Если freq-и до неё должны ходить частями, то
  почему штатная отправка файла должна отличаться? Как правило не
  должна. Хотя это можно и отключить и переопределить
* возможность тоссинга только определённые типы пакетов. Не только
  определённые приоритеты, но типы
* в формат простого пакета внесено поле nice. Из-за него можно отослать
  freq с высоким приоритетом (чтобы быстрее прососался), но ответ (file)
  будет с заданным -replynice, который может быть сильно ниже чтобы не
  нагружать каналы связи
* если включена chunked передача файла, но его размер меньше самого
  chunk-а, то не делать chunked передачу, а отправить файл просто как
  есть. Чтобы не плодить лишний пакет с метаинформацией, фактически
  бессмысленный


No differences found