WaZOO
WaZOO (сокращённо от англ. Warp Zillion Opus-to-Opus) — название одного из протоколов сеансового уровня,[+?] предназначенного для работы в сети Фидонет.
Судя по эпилогу ноудлиста, WaZOO описывает один из двух наиболее распространённых в Фидонете протоколов файлового запроса (фрека). (А другой — Bark.)
Процедура файлового запроса WaZOO документирована в FTS-0006; этот документ упоминает, что базовый метод файлового запроса WaZOO был разработан и реализован Риком Хюбнером,[1] а функциональность, связанную с запросом обновлений, добавил Винс Перриэлло.[2]
Файлы REQ[править | править код]
Файловый запрос WaZOO основан на передаче запроса в специальном файле, содержащем имена желаемых файлов и некоторые параметры. Имя такого файла с запросами формируется по образцу файлов с расширениями «.OUT» и «.FLO», создаваемых Opus-CBCS, или BinkleyTerm, или другими подобными мейлерами (почтовыми программами), и потому это имя имеет вид
сетьузел.REQ
,
где «сеть» — четыре шестнадцатиричные цифры номера сети, а «узел» — четыре шестнадцатиричные цифры номера узла в этой сети.[3]
Файл REQ является текстовым и содержит перечень файлов, запрашиваемых его отправителем у той системы, на которую он отсылается. Эти имена могут содержать подстановочные знаки («*», «?»), но не путь к файлу. Каждое имя приводится в отдельной строке файла, которая также может содержать пароль, если он требуется.
Так, например, чтобы запросить файл THIS.ARC и все ноудлисты, имеющиеся на узле 12/2, надо назвать файл 000C0002.REQ
[4] и поместить в него две строки:
this.arc nodelist.*
Если системный оператор требует пароль «that» для доступа к файлу THIS.ARC, тогда содержимое REQ-файла следует переменить на вот такое:
this.arc !that nodelist.*
Иными словами, пароли (согласно FTS-0006, они состоят из шести символов или менее) отделяются от имени файла пробелом и восклицательным знаком:
<имя файла><один пробел>!<пароль><конец строки>
FTS-0006 определяет также ещё один вид файлового запроса: запрос на обновление файла, в котором указывается тип обновления и момент времени, выраженный UNIX-подобным длинным десятичным ASCII-числом, которое следует за именем файла или, если необходим пароль, за паролем. К примеру, запрос на обновление файла NEWOPUS.*
при том условии, что в наличие ужé имеется файл с датою 1 января 1989 года и временем 00:00, если этот запрос поступает с системы на Восточном побережье США (где поясное время[+?] составляет GMT+06), будет таков:
NEWOPUS.* +599634000
Знак перед временем необходим: он указывает тип обновления. Плюс означает, что отправителю запроса будут присланы все файлы, соответствующие маске «NEWOPUS.*» и притом более новые, чем указанное время; минус означает все соответствующие маске файлы с датою до тех пор или равной указанному времени.
Таким образом, полный формат строки REQ-файла таков:
<имя файла>[<пробел>!<пароль>][<пробел><+/-><время>]<конец строки>
Конец строки помечается символом CR.[5]
Передача REQ-файла[править | править код]
В зависимости от типа сеанса, REQ-файл либо просто передаётся системе-получателю целиком как есть (как любой другой файл), либо передаётся по одной строке (и каждая строка отдельно обслуживается на том конце).
Получатель файлового запроса может игнорировать запрос, или выслать некоторые из запрошенных файлов, или выслать все запрошенные файлы. Стандарт WaZOO не накладывает никаких обязанностей в этом смысле.
Если программа, реализующая ответ на файловые запросы WaZOO, не в состоянии обработать запрос на обновление, то ей следует проигнорировать указанное в строке время и обработать эту строку как обычный файловый запрос.
В некоторых случаях REQ-файл не будет отправлен или даже составлен, поскольку будет заранее ясно, что его предполагаемый получатель не занимается обслуживанием файловых запросов. Как правило, способность системы откликаться на файловые запросы отмечается специальным флагом в ноудлисте; кроме того, в пакете YooHoo (формат которого определён в FTS-0006) система может установить специальный бит, указывающий, принимает ли она в настоящее время REQ-файлы.