Adrenalin v0.70alpha3
OS Windows
(95
и выше).Содержание.
Adrenalin
- файлэхопроцессор для платформы Win32
,
распространяемый вместе с исходными текстами на правах freeware
(Вы можете использовать данную программу/исходные тексты и распространять
её/исходники без ограничений, при условии, что Вы не извлекаете из
этого прибыли без ведома автора). Автор программы - Андрей Купришов
(Andrey Kuprishov, 2:5023/27@fidonet).
|
Adrenalin
предназначен для использования в FTN
-сетях (сетях,
построенных и функционирующих по принципу сети Fidonet
). Поэтому технические
аспекты работы таких сетей останутся за рамками данной документации, а основной
акцент будет сделан на тех терминах, которые используются непосредственно при
работе файлэхопроцессора.
FTN
-сетей используются файлэхи.
Файлэха обладает как минимум именем, характеризующим тематику файлов, которые
по ней передаются (например, файлэха BOOK
служит для обмена файлами, содержащими
тексты различных литературных произведений).
tic
).
Тик-файл содержит информацию о файле данных: кто его отправил, в какую файлэху,
когда, с каким описанием и так далее. Задача файлэхопроцессора в общем случае
сводится к переносу файла из каталога, в который складывает файлы мэйлер, в
каталог соответствующей файлэхи, а затем к подготовке информации для мэйлера, если
данный файл должен быть отправлен другим подписчикам файлэхи. На этапе подготовки
информации мэйлеру файлэхопроцессор создаёт новые тик-файлы для каждого подписчика.
toss
).
hatch
).
purge
).
Adrenalin
(или на один из псевдонимов
используемого Вами файлэхопроцессора, например Allfix
). Адреналин ищет подобные
письма в указанном ему netmail
-каталоге, и по возможности отвечает на них.
Затрудняюсь охарактеризовать этот процесс одним словом, но он тоже играет
немаловажную роль в функционировании файлэх.
2.1. Обмен информацией с мэйлером.
Для того, чтобы подписчики получили файлы (и тики), файлэхопроцессор должен "сообщить" мэйлеру, кому какие файлы следует отправить. Существует ряд способов подготовки подобной информации, как то:
|
2.1.1. Binkley-style Outbound
.
Binkley-style Outbound
можно в SU.FIDOTECH FAQ
.
FileBoxes
можно в документации к
мэйлеру T-Mail
от Andy Elkin.
adrenalin.exe
), следующие конфигурационные файлы: adrenalin.cfg
, links.xml
и
areas.xml
. Файл adrenalin.cfg
является обычным текстовым файлом, файлы links.xml
и
areas.xml
- xml
-файлы. Для успешного чтения xml
-файлов Адреналину необходима библиотека
MiniSAX.dll
, она должна находиться в том же каталоге, в котором находится adrenalin.exe
,
в каталоге System32
или в одном из каталогов, определённых в переменной окружения PATH
.
Данная библиотека входит в стандартную поставку Адреналина.
about_xml.txt
в подкаталоге docs
находится небольшое описание xml
(это фрагмент письма из
конференции ADRENALIN.SUPPORT
). Рекомендую ознакомиться
с ним, прежде чем Вы приступите к редактированию
xml
-конфигов.
XML
, некоторые символы необходимо кодировать при их использовании
внутри тагов или же в значениях атрибутов. Подобные символы перечислены
ниже:
|
Вася <ZIZOP> Пупкин
,
то в links.xml
его придётся указать следующим образом:
<sysop>Вася <ZIZOP> Пупкин</sysop>
Вася & Co
,
то в links.xml
его необходимо указать так:
<sysop>Вася & Co</sysop>
adrenalin.cfg
содержит основные настройки системы.
Он является обычным текстовым файлом (в следующих версиях он будет заменён на xml
-файл).
Формат файла adrenalin.cfg
выглядит следующим образом:
<ключевое слово> <значение> [<значение> ...]
ADDRESS
и address
считаются одинаковыми ключевыми
словами). adrenalin.cfg
может содержать комментарии. Комментарий начинается с
символа "точка с запятой". Часть строки, являющаяся комментарием, игнорируется Адреналином.
;
"
(например, это имя файла или каталога), то это значение необходимо заключить
в двойные кавычки.
\
' не обязательно.
D:\FIDO\Adrenalin
,
а путь к netmail
-сообщениям указан в виде "..\Mail"
, то поиск сообщений будет
производиться в каталоге D:\FIDO\Mail
.
adrenalin.cfg
:
|
links.xml
- выглядит так:
<links>
<link>
...
</link>
<link>
...
</link>
...
</links>
Корневым элементом документа является элемент links
.
У него нет атрибутов, но он может содержать любое количество подэлементов link
.
Элемент link
(являющийся подэлементом элемента links
)
также не имеет атрибутов, но имеет следующие подэлементы:
name
<name>Vasya Pupkin</name>
address
[[Zone:]Net/]Node[.Point][@Domain]
<address>27.999</address>
useAKA
АКА
из наших использовать для общения с линком.
Cодержит строку, описывающую АКА
.
Адрес должен быть одним из ваших АКА
-адресов или основным адресом;
если для линка не указан соответствующий АКА
-адрес, то он
будет выбран автоматически (будет использоваться максимально
близкий адрес, причём анализ "близости" адресов происходит по
схеме: домен -> зона -> сеть -> нода).
<useAKA>27.0</useAKA>
outbound
type
|
- |
binkley или fileBoxes ,
по умолчанию binkley
|
flavour
|
- |
как мэйлеру следует отправлять файлы,
возможные значения атрибута для Bink-style Outbound :
normal , direct , crash ,
hold , immediate ;
для FileBoxes :
normal , hold ;
по умолчанию hold .
|
<outbound type="binkley" flavour="direct" />
security
password
netmail
для данного линка.
sendPriority
receivePriority
group
group
в security
.
<security>
<password>superpwd</password>
<sendPriority>10</sendPriority>
<receivePriority>10</receivePrioriry>
<group>PICS</group>
<group>MUSIC</group>
</security>
allowAreaCreation
path
AutoCreated
основного файла конфигурации.
defaultGroup
sendPriority
receivePriority
<allowAreaCreation>
<path>..\AreasFromLink</path>
<defaultGroup>NewFechos</defaultGroup>
<receivePriority>10</receivePrioriry>
</allowAreaCreation>
status
passive
|
- |
пассивный режим, в этом режиме система может
посылать нам файлы, но сама от нас файлы не получает; данный
режим линк может включать и отключать дистанционно,
посредством менеджера подписки, используя команды %lock
и %unlock .
|
unavailable
|
- | режим недоступности, в этом режиме все операции с данной системой полностью заморожены (мы не посылаем и не получаем от неё файлы, и не обрабатываем сообщения от этой системы); отключить данный режим дистанционно нельзя. |
<status>passive</status>
robotName
Allfix
<robotName>Adrenalin</robotName>
availAreas
<availAreas>C:\FIDO\AvailAreas\areas_from_27.999.lst</availAreas>
areas.xml
- выглядит так:
<areas>
<group ...>
<area ...>
...
</area>
...
</group>
<group ...>
...
</group>
...
</areas>
Корневым элементом документа является элемент areas
.
У него нет атрибутов, но он может содержать любое количество подэлементов group
.
Элемент group
описывает группу областей. Помимо ряда атрибутов (см. ниже)
он может содержать любое количество подэлементов area
, каждый из которых
описывает файлэху.
group
name
|
- |
имя группы, начиная с версии 0.70alpha1
может быть произвольной последовательностью символов;
имена групп не различаются по регистру букв.
|
description
|
- | описание группы; данный атрибут не является обязательным. |
area
name
|
- | имя области. |
description
|
- | описание области (необязательный атрибут). |
path
|
- | путь к файлам области. |
sendPriority
|
- |
приоритет на отправку файлов в файлэху;
линк сможет отправить файл лишь в том случае, если его приоритет
на отправку не меньше данного значения.
Значение по умолчанию: 0 |
receivePriority
|
- |
приоритет на получение файлов по файлэхе;
линк получит файл лишь в том случае, если его приоритет
на получение не меньше данного значения.
Значение по умолчанию: 0 |
area
может содержать следующие подэлементы:
passthrough
passthrough
-областям).
vetoManualPurge
veto
)
ручная зачистка по маске, данная опция введена для того, чтобы избежать
случайного уничтожения содержимого области при указании
в команде PURGE
масок областей, например:
Adrenalin.exe purge *
openForResend
%RESEND
, даже если пользователь не подписан
на данную область.
outbound
outbound
определён у самих линков.
type
может иметь значение либо
binkley
, либо fileBoxes
.
binkley-outbound
,
а в параметрах эхи указан fileBoxes
, то для всех способов
отправки файлов линку, отличных от hold
(direct
, crash
, immediate
)
будет использован способ normal
(FileBoxes
просто не поддерживает способы, отличные от normal
и
hold
).
linked
routing
,
позволяющий явно указать возможности линка. Возможные значения
атрибута:
send | - | линк может только посылать файлы в область, независимо от того, какими приоритетами он обладает. |
receive | - | линк может только получать файлы из области, независимо от того, какими приоритетами он обладает. |
bidirectional | - | линк может и получать, и посылать файлы, независимо от того, какими приоритетами он обладает. |
linked
.
<linked>27.1</linked>
<linked>100:1/1.76@Somenet</linked>
<linked routing="receive">11</linked>
<areas>
<group name="KLG">
<area name="NET5023"
path="..\FileEchos\NET5023"
sendPriority="50">
<vetoManualPurge />
<linked>11</linked>
<linked>27.16</linked>
<linked>27.17</linked>
<linked>27.15</linked>
<linked>27.52</linked>
<linked>27.55</linked>
<linked>27.59</linked>
<linked>27.2500</linked>
<linked>27.62</linked>
<linked>27.84</linked>
<linked>27.86</linked>
<linked>47</linked>
<linked>35</linked>
</area>
</group>
<group name="33's">
<area name="MAD.FILES"
path="..\FileEchos\MAD.FILES"
sendPriority="200">
<outbound type="fileBoxes">
<linked>27.11</linked>
<linked>27.62</linked>
<linked>27.45</linked>
<linked>17</linked>
<linked>27.55</linked>
<linked routing="send">33</linked>
<linked>27.84</linked>
<linked>27.86</linked>
<linked>47</linked>
</area>
</group>
</areas>
4.1. Тоссинг входящих тиков и файлов.
При запуске файлэхопроцессора с параметромtoss
он просматривает каталог входящих файлов (Inbound
) и
тоссит тик-файлы и соответствующие файлы данных:
adrenalin.exe toss
Inbound
-каталог
в поиске файлов, удовлетворяющих маске *.ti?
;
это позволяет не пропустить те тик-файлы, которые были переименованы
мэйлером при получении тик-файла с таким же именем (а обычно в таком случае мэйлер
увеличивает последнюю букву имени файла, который уже лежит
в Inbound
-каталоге).
Bink-style outbound
,
либо с помощью FileBoxes
).
newfiles.txt
в каталоге Адреналина. Для каждого обработанного файла данных
в этот файл помещаются следующие строки:
Area <имя файлэхи>
File <имя файла>
Size <размер файла, в байтах>
Desc <описание>
Origin <адрес, с которого файл был захатчен>
Uplink <адрес, с которого этот файл пришёл на Вашу станцию>
В случае автосоздания новой файловой области происходит
обновление файла newareas.txt
, и в него помещается строка
следующего содержания:
Fileecho area <имя области> created by <адрес отправителя тика>
traffic.dat
.
В первую строку файла записывается время, начиная с которого ведётся учёт
трафика, последующие строки имеют вид:
<имя области> <трафик в байтах>
traffic.pl
. Она входит в стандартную поставку файлэхопроцессора.
Bink-style Outbound
, может возникнуть ситуация,
когда с этой же системой работает другое приложение (например, в это время
мэйлер выполняет с системой обмен файлами), и Bink-style Outbound
заблокирован (в нём существует флажок занятости, bsy
-файл).
В случае обнаружения флага занятости Адреналин будет работать с так называемым
"pending outbound
" вместо основного, используя для этого
подкаталог bso.tmp
в том каталоге, где находится adrenalin.exe
.
При очередном тоссинге Адреналин в первую очередь проверяет pending outbound
на наличие в нём файлов и добавляет их содержимое к настоящему
Bink-style Outbound
.
pending outbound
)
используется также и при хатчинге файлов.
tossbad
Адреналин выполняет тоссинг "плохих" тиков.
Команда по своему действию аналогична команде toss
, за исключением
того, что сканируется BadTics
-каталог. Поиск файлов с данными
осуществляется в Inbound
-каталоге. Команда предназначена для
случаев, когда, например, тик-файлы считались некорректными из-за
неправильной настройки программы (например, неправильно прописанного пароля)
или же файлы для тиков отсутствовали, и тик-файлы были перемещены в BadTics
каталог, а файлы данных прибыли с опозданием.
4.2. Обработка нетмэйл-запросов к Адреналину.
По командеfix
Адреналин обрабатывает нетмэйл-запросы:
adrenalin.exe fix
Netmail
-каталоге.
Запрос - письмо, имя адресата которого совпадает с одним из псевдонимов программы или
с именем Adrenalin
, а адрес назначения совпадает с одним из адресов
Вашей системы. Адреналин обрабатывает найденные запросы и создаёт необходимые письма-ответы
в том же каталоге. Письма запросов удаляются либо получают атрибут Received
,
в зависимости от значения параметра KillProcessedMail
(см. описание параметров
файла adrenalin.cfg
).
|
Subject
(тема) письма-запроса должен стоять
пароль данного линка.
4.3. Хатчинг файлов в файлэху.
По командеhatch
файлэхопроцессор осуществляет
хатчинг файла в указанную файлэху (с его копированием в соответствующий
каталог, созданием тик-файлов для подписчиков, подготовкой файлов к отправке линкам).
hatch <file> <area> <desc> [-r <Replaces>] [-L]
-L
, то файл не будет
перенесён в каталог файлэхи, а в BSO
-файлах будет указано
его полное имя.
@
' при указании в командной строке.
<file> [<description>]
...
to_hatch.lst
содержит следующие строки:
super1.zip Super-Puper1
super2.zip
hatch @to_hatch.lst MYGOODAREA "some desc"
MYSUPERAREA
будут захатчены
файлы super1.zip
(с описанием Super-Puper1
, взятым из файла)
и super2.zip
(с описанием some desc
, взятым из командной строки).
Replaces
, то в тик-Файлы будет
добавлен параметр Replaces
, но на нашей системе файл НЕ будет заменён.
4.4. Пуржинг (зачистка) файлэх.
Адреналин поддерживает три основных режима зачистки файлэх. Прежде чем рассмотреть каждый из них, необходимо заметить, что в версии0.70alpha2
зачистка корректно работает лишь с Bink-style Outbound, поэтому я крайне не рекомендую
использовать её даже в случае, если только часть линков или избранные области
используют FileBoxes
.
purge
|
- |
"очищает" файлэхи, т.е. удаляет из них те файлы, для которых
отсутствуют тик-файлы (эта предпосылка с большой долей вероятности
позволяет считать, что подписчики получили файлы).
Данную команду можно использовать двумя способами:
|
||||
timepurge
|
- |
удаляет из Bink-style Outbound ссылки на тики и файлы старше
указанного значения, а также удаляет старые тики.
Формат команды: <hours> [<mask>]+
где <hours> - время (в часах), по которому оценивается
степень старости тиков;
<mask> - маска для адресов линков, в маске
возможно использование спецсимволов '* ' (любая, даже пустая,
последовательность символов) и '? ' (один любой символ).
Например, */27.* для обработки всех узлов с номером 27 .
Если маска не указана, будут обработаны все линки.
|
||||
basepurge
|
- |
удаляет из файлэх файлы старше указанного срока. Информация о
времени прихода файлов берётся из files.db .
Формат команды: <days> [areamask]+
где <days> - время (в днях), по которому оценивается
возраст файлов;
<areamask> - маска для областей.
Если ни одна маска не указана, то будут зачищены все области, кроме тех, на которые наложено вето. В данном режиме пуржинга из таких областей нельзя удалить файлы, даже непосредственно указав имена областей. По окончании зачистки создаётся письмо сисопу со списком удалённых файлов. Данная команда не проводит корректировку BSO и не удаляет тики.
|
4.5. Дополнительные режимы работы.
Адреналин поддерживает ряд других, ещё не освещённых выше команд.
|
ADRENALIN.SUPPORT
(даже тем, кто ни разу не написал в эху).