T-mail

6.Нодлист и его компилятор

Информация об узлах, составляющих сеть, использующую сетевую технологию FidoNet, содержится в особых файлах, называемых нодлистами (nodelist). Формат этих файлов определен документом FTS-0005. Это текстовый файл, каждая строка которого содержит информацию об одном узле, например:

,100,T-Mail_support,St.Petersburg,Andy_Elkin,7-812-101-6225,9600,CM,V34,XX

В такой строке приводится основная информация об узле сети: номер, название, месторасположение, имя системного оператора, номер телефона в международном формате, и различные дополнительные флажки, которые уточняют тип и скорость модема, вид системы, время ее работы и т.д.

Для программ, использующих нодлист в работе (мэйлеры и пр.), этот формат не совсем удобен, т.к. при достаточно большом количестве узлов в сети необходимо организовать быстрый поиск в нодлисте, размер которого может достигать сотен килобайтов.

Для организации быстрой работы нодлист "компилируется", а точнее - индексируется специальной программой, которая создает индексные файлы.

Программа TNC (T-Mail nodelist compiler), входящая в комплект T-Mail, предназначена для совместного использования с мэйлером T-Mail. TNC создает индексный файл, необходимый для работы T-Mail с нодлистами и пойнтлистами. Число одновременно используемых нодлистов и пойнтлистов может достигать 32.

Кроме того, TNC при компиляции нодлиста может создавать усеченный нодлист, "вырезая" данные о регионах, сетях или зонах. По желанию, для каждого региона создается отдельный файл, содержащий списки сетей, входящих в этот регион. Это может оказаться полезным для организации маршрутизации по регионам.

TNC использует собственный конфигурационный файл, который имеет имя tnc.ctl и представляет собой обычный текстовый файл, каждая строка которого представляет собой переменную с параметрами. Строки с комментариями должны начинаться символом ";" и компилятором не обрабатываются. Этот файл ищется программой в текущем каталоге.

;--------------- Nodelist compiler TNC.Control file. --------------------

;

;

Address 2:5030/15.1════════════ ; Full address

;

;Эта переменная задает полный адрес системы.

;При использовании с T-Mail должен совпадать с адресом в t-mail.ctl

;

Path═══════ c:\T-Mail\nodelist\══════════════ ; Path to nodelist

;

;Этапеременнаяопределяет каталог,вкоторомсодержатсянодлисты и

;пойнтлисты.

;

List════════ nodelist.*═════════════ ; Filename of nodelist

List════════ Contact.dat

List════════ net5030.d??

List════════ abclist.999

;

;В этихпеременных перечисленынодлисты ипойнтлисты. Приопределении

;нодлистов══ допускаетсяиспользование══ шаблонов(wildcards)согласно

;правилам,принятым вMS-DOS. TNCможет обработатьдо 32нодлистов и

;пойнтлистов.

;

;При использовании шаблонов вобработку включаются все подходящие файлы,

;заисключением тех,которые имеютрасширения .ZIP,.ARJ, .LZH, .ZOO,

;.RAR, .ARC, .PAK, .RED, .IDX, .FDX, .NDX, .INX, .V8, .BAK.

;

;Прииспользованиирасширенияименифайла.999будетнайден файл с

;заданнымименем, имеющийв качестверасширения трехзначное десятичное

;число. Еслитаких файлов будетнесколько, будет выбранодин из нихс

;наиболее поздней датой/временем создания.

;

;-ZONE══ 1════════════ ; Exclude Zone

;

;Таким образом, к примеру, исключается зона 1 из индексного файла.

;

T-Mail version 2600. Руководство оператора══════════════ Стр. 19

;+ZONE2════════════ ; Only this zone

;+ZONE66

;

;Такимобразомвиндексныйфайлвключаютсятолькоуказанныезоны,

;остальные игнорируются.

;

Flagcompiled.ok ; Flag name

; Flag\SEM32\compiled.ok

;

;Этой переменнойзадается имя файла-флагаили системного семафора(для

;OS/2), которыйбудет создан после компиляции.Может быть определено до

;32 таких переменных. Имя системного семафора должно начинаться со строки

;"\SEM32\".Если TNCсоздал хотябы одинсистемный семафор,то перед

;завершениемсвоей работыон выдерживаетпаузу 60секунд. Если же все

;установленные системные семафоры былираспознаны другими программами до

;окончания этой паузы, то работа завершается сразу.

;

;ReducedListRegion 46 47 50══════════ ; Reduced nodelist parameters

;

;Даннаяпеременная описываетусловия длясоздания усеченных нодлистов.

;Если эта переменная определена, топри компиляции нодлистов для каждого

;скомпилированного══ нодлиста══ будет══ создан══ егоусеченныйвариант,

;включающий в себя только записи о тех регионах, сетях или зонах, которые

;перечислены вэтой переменной (черезпробел). Имя усеченногонодлиста

;совпадает сименем исходного, арасширение заменяется на.RED. Первым

;параметромэтойстрокидолжнобытьодноиз ключевых слов "Region",

;"Zone"или"Net",после══ которогочерезпробелыследуютчисловые

;значения. Такая переменная может быть только одна.

;

;Примеры:

;--------

;ReducedList Zone 2 3

;ReducedList Net 5030 5040 5050

;

;---------------------------- End of tnc.ctl ------------------------------

Компилятор нодлиста запускается с помощью команды TNC и может иметь в командной строке следующие ключи:

-C═══════════ √ компилировать нодлисты при необходимости (при изменении даты);

-F═══════════ √ компилировать нодлисты принудительно;

-R═══════════ √ создавать файлы rxx.net, содержащие списки сетей по регионам;

-S═══════════ √ нет вывода на экран (несколько ускоряет работу);

-?════════════ √ подсказка.

При запуске с ключом -C компилятор сравнивает даты модификации нодлистов и индексного файла, и выполняет компиляцию только при необходимости. Ключ -F отменяет эту проверку и компиляция будет выполнена в любом случае. TNC может компилировать нодлисты с максимальным суммарным количеством систем до 131000. Если при компиляции нодлиста произошла ошибка, TNC завершает работу с кодом завершения (errorlevel) 255. Если компиляция завершена успешно, то TNC завершает работу с кодом завершения (errorlevel) 0.

Существует возможность компилировать нодлисты не прерывая работы T-Mail, параллельно. В таком случае TNC пpи невозможности открыть индексный файл нодлиста ndxlist.t-m создает один из 9 альтернативных индексных файлов (nxdlist.t-0 ...ndxlist.t-9). T-Mail же пpи открытии индексного файла открывает последний (по дате). Это происходит пpи:

1) запуске t-mail

2) возврате из swap/run

3) пpи обработке ключевого слова Control.

Перед началом компиляции TNC пытается удалить все индексы, не заблокированные программой T-Mail.

Запуск T-Mail без нодлистов

T-Mail имеет возможность работать вообще без нодлистов. При этом координаты и параметры всех систем, с которыми необходимо работать, нужно задать в файле подстановок (subst.lst). Для того, чтобы T-Mail при начале работы не выдавал предупреждение об отсутствии нодлиста можно при этом варианте работы выполнить команду TNC -F для создания "пустого" индекса нодлиста.

Такой вариант работы может использоваться, в частности, для работы пойнтовой системы, то есть системы, которая постоянно работает только с одним-двумя узлами-боссами и для которой нет необходимости хранить информацию о сети (сетях) в целом.