From: Sergey Matveev Date: Sat, 17 Feb 2018 20:55:36 +0000 (+0300) Subject: Релиз NNCP 3.0! X-Git-Url: http://www.git.stargrave.org/?a=commitdiff_plain;h=b047154f22fc82834be0b8249659f0b52da5b7be;p=stargrave-blog.git Релиз 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 передачу, а отправить файл просто как есть. Чтобы не плодить лишний пакет с метаинформацией, фактически бессмысленный ---