[about] [index] [prev] [2018-02-17 23:55:36+03:00] [b047154f22fc82834be0b8249659f0b52da5b7be]
Topics: [nncp]

Релиз NNCP 3.0!

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 передачу, а отправить файл просто как
  есть. Чтобы не плодить лишний пакет с метаинформацией, фактически
  бессмысленный

[leave comment]