SRIF32 - менеджер файловых запросов

версия 1.23


1. О ПРОГРАММЕ

2. ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ

3. ЗАПУСК МЕНЕДЖЕРА

4. SRIF-ФАЙЛ

5. INI-ФАЙЛ

6. ФОРМАТЫ ФАЙЛОВ

7. ПАРОЛИ И СПИСКИ АДРЕСОВ

8. ПОРЯДОК ПОСТРОЕНИЯ ЗАПРОСОВ

9. ПО ПОВОДУ РУССКИХ ИМЕН

10. ИНДЕКСЫ

11. SRIFStat

12. ГДЕ НАЙТИ НОВЫЕ ВЕРСИИ

13. ХМ, ЕЩЕ ЧЕГО?


1. О программе

Маленький утиль Srif32 предназначен для работы совместно с FTN-мэйлерами в качестве внешнего обработчика файловых запросов. Менеджер работает в среде Windows9x, WindowsNT. Работа Srif32 опробована совместно с Аргусом и Т-Майлом. Возможна работа совместно с любыми другими мэйлерами, которые позволяют подключать внешний обработчик файловых запросов. Сервис Srif32 выполняет:

2. Лицензионное соглашение

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

В архив включены (надеюсь :-)) следующие файлы:

Read_me.please Маленькое дополнение
File_id.diz Описание архива
History.txt Изменения и дополнения прошлых версий
Note.txt Пример файла-вставки для отчета
Srif32.als Пример файла описания алиасов
Srif32.dirs Пример файла со списком каталогов
Srif32.doc.htm Документация по Srif32 (в HTML формате)
Srif32.Excl Пример файла со списком исключаемых файлов
Srif32.exe Исполняемый файл
Srif32Index.exe Утиль для создания файлаов-индексов
Srif32.ini Файл с настройками
Srif32.lng Файл языков интерфейса
Srif32.ndx Пример файла-индекса
Srif32.rDir Пример файла со списком каталогов
SRIFStat.exe Доп-утиль для сбора статистики по фрякам
TMsrif.BAT bat-файл для запуска менеджера из т-майла

3. Запуск менеджера

Для нормальной работы менеджера, ему следует передать один параметр - стандартный SRIF-файл (о формате файла см. ниже). Кроме того, в каталоге, где находится srif32.exe должен лежать srif32.ini. Вот, например, как это делается в Аргусе: в меню Config\FileRequests поставьте галочку UseSRIF и пропишите в поле для StandartRequestInformationFile следующую строчку:

Путь\SRIF32.EXE %SRIF%

Вместо параметра %SRIF% Аргус сам пропишет имя srif-файла.

В Т-майле нельзя напрямую передать имя srif-файла, но, он (файл) создается в каталоге флагов т-майла, его имя определяется переменной Flag_Session (см. t-mail.ctl). Как правило, имя этого файла включает номер задачи (%TASKNO%), а уж его то можно передать. Для этого можно использовать прилагаемый батничек - он сформирует имя srif-файла и запустит менеджер. В t-mail.ctl впишите процесс:

Process FREQ Путь\TMSRIF.BAT *T

и исправьте батничек в соответствии с Вашими путями и переменными Flag_Session и Flag_Dir в t-mail.ctl.

При использовании других мэйлеров Вам нужно только указать имя стандартного SRIF-файла в качестве параметра при вызове менеджера. Вся необходимая информация для работы менеджера находится в этом файле (см. пример файла в разделе "SRIF-файл").

4. SRIF-файл

Это файл, содержащий информацию о системе, а также имя файла-запроса и имя файла, куда следует поместить ответ. Стандарт на файл описан в fsc-0086 Gordian Schuermann & Mirko Mucko. Файл создается мэйлером, поэтому Вам не надо беспокоиться о его формате и местонахождении. Вот пример файла, который создает Аргус:


Sysop Rodion Sagdeev
AKA 2:5013/1.9
AKA 2:5013/5.1
Baud 28800
Time -1
RequestList 1.req
ResponseList 1.out
RemoteStatus PROTECTED
SystemStatus LISTED
SessionProtocol HYD
Site RS System
Location Magnitogorsk
Phone 7-3511-***-***
DTE 115200
PORT 2
Mailer Argus
MailerCode 00
SerialNumber UNREG
Version 2.8/95
SessionType EMSI
OurAKA 2:5013/1
TRANX 36BA0D76
Password 123

Вы можете использовать этот пример для проверки и настройки менеджера. Создайте файл (например, 1.srif), в который поместите вышеприведенные строчки. При необходимости отредактируйте нужные поля. Создайте файл 1.req, в который запишите запрос (см. раздел "Порядок построения запросов"). Запуская Srif32 с параметром 1.srif Вы увидите результаты работы в 1.out.

Рассмотрим основные поля (вернее - те, которые использует для своей работы менеджер).

Sysop - Здесь передается имя сисопа удаленной станции. Данное имя используется только для ведения лога и создания письма-отчета (поле "To:"). Если его длина окажется больше 35 символов, то оно будет обрезано. "Разделение" станций происходит исключительно по адресам. AKA - Адрес системы. Если удаленная система имеет несколько АКА, то все они передаются в нескольких строчках AKA. Обрабатывается первая строка АКА: именно она ищется в ini-файле и на этот адрес отправляется письмо-отчет. Но! для всех строчек AKA будут сохранены текущие суточные лимиты. Это несколько защищает от запросов одного юзера с разных адресов для обхода суточных лимитов.

Baud - Скорость соединения. Используется для проверки - соответствует ли скорость минимально разрешенной для фряков. Кроме того, исходя из скорости соединения, вычисляется время, необходимое на вытягивание запрошенных файлов. Вернее наоборот: исходя из разрешенного времени (см. описание ini-файла, параметр Koef) вычисляется максимальный объем (чтобы он уместился в это время).

RequestList - Имя файла-запроса. Это тот самый файл, который юзер послал Вашей системе в качестве запроса. В нем перечислены запрашиваемые файлы или маски файлов и (при необходимости) пароли на доступ к этим файлам. В каждой строчке запроса указан один файл (одна маска), и, через пробел+"!" пароль (если нужен). Если имя фрякаемого файла содержит пробелы, то оно должно быть заключено в кавычки.

ResponseList - Имя файла, куда менеджер должен поместить результаты своей работы. В этом файле в каждой строчке перечислены файлы, которые были найдены и прошли через все лимиты. Все эти файлы будут отправлены удаленной стороне. Кроме того, первой строчкой добавляется имя файла-отчета (в формате *.PKT). Имя начинается с символа "^", что говорит мэйлеру о необходимости удалить этот файл после его отправки.

RemoteStatus - Статус удаленной стороны. PROTECTED или UNPROTECTED, т.е., парольная ли текущая сессия. Это позволит защититься от "левых" звонков с чужими адресами, т.к. обычно, Ваши собственные поинта имеют более "мягкие" лимиты, но и, как правило, пароли на сессию. См. также одноименный параметр в описании ini -файла.

SystemStatus - Статус удаленной системы. LISTED или UNLISTED, т.е. присутствует ли данная система в нодлисте. Аналогично предыдущему параметру позволяет защититься от несуществующих адресов. См. также одноименный параметр в описании ini -файла.

OurAKA - АКА Вашей системы для данного сеанса. Используется для создания письма-отчета (поле "From:"). Внимание! т-майл не создает этой строчки, поэтому, если она отсутствует в SRIF-файле, то ее значение будет взято из ini-файла (см. одноименный параметр в описании ini-файла).

5. INI-файл

Для нормальной работы менеджера следует настроить ini-файл. Он должен находиться в рабочем каталоге SRIF-менеджера. Сразу обращаю внимание на то, что _ВСЕ_ ключи (кроме LogFile, MaxLogSize, AccessLogName и AccessLogSize) можно (и НУЖНО) переопределить в любой секции. Т.е. ЛЮБОЙ параметр может быть настроен индивидуально для отдельного адреса (группы адресов).

Файл разбит на отдельные секции. Заголовок секции - это адрес системы или маска для группы адресов в 4D формате. Заголовок секции заключается в квадратные скобки. После заголовка идут ключи, задающие настройку для этого адреса (группы адресов).

Секция [Main] является основной. Заданные в ней параметры будут параметрами "по умолчанию" для остальных секций (если они в этих секциях не определены). В ней также задаются имена лог-файлов и их размер.

В начале работы менеджера происходит чтение секции [Main]. Затем, поочередно читаются секции (если они присутствуют) [*:*/*.*], [Z:*/*.*], [Z:R/*.*], [Z:R/N.*], [Z:R/N.P], где Z,R,N,P - номера зоны, региона, ноды и поинта фрякающего. Если в результате, окажется, что ключ RemoteStatus=1, а текущая секция окажется непарольной, то менеджер еще раз перечитает секцию [Main]. Аналогично при SystemStatus=1. Таким образом, для запросов с непарольных систем при RemoteStatus=1, и для систем, отсутствующих в нодлисте, при SystemStatus =1 лимиты и настройки задаются в секции [Main].

Вот описание ключей ini-файла:

LogFile - Имя лог-файла. Если имя файла содержит пробелы - следует заключить его в кавычки. Если имя файла не определено, то лог вестись не будет. Этот параметр можно задать только в секции [Main]. Формат файла см. в разделе " Форматы файлов".

MaxLogSize - Максимальный размер лога, в Кб. При старте программы проверяется размер лог-файла и, при его превышении, производит укорачивание. Об этом также делается запись в лог-файл. Если размер не указан, или равен 0, то размер лога не отслеживается (это может ускорить обработку запросов, особенно на медленных системах). Этот параметр можно задать только в секции [Main].

AccessLogName - Имя файла-хронологии. Файл ведется в формате NCSA. В него записываются файлы, которые были переданы мэйлеру для отправки. Этот файл удобно анализировать любым NCSA-лог-анализатором (н-р AnaLog) или использовать прилагающуюся тулзу - SRIFStat. Этот параметр можно задать только в секции [Main]. Формат файла см. в разделе " Форматы файлов".

AccessLogSize - Максимальный размер файла-хронологии, в Кб. При старте программы проверяется размер файла и, при его превышении, производит укорачивание. Об этом делается запись в лог-файл. Если размер не указан, или равен 0, то размер файла-хронологии не отслеживается (это может ускорить обработку запросов, особенно на медленных системах). Этот параметр можно задать только в секции [Main].

LangFile- Имя языкового файла. По умолчанию Srif32.lng. Формат файла см. в разделе " Форматы файлов".

Language - Язык, который будет использоваться для отображения всех сообщений, для лога и для письма-отчета. По умолчанию English.

LimitFileName - Имя файла, в котором будет сохраняться информация о суточных лимитах (см. ниже). Если отсутствует или равно пустой строке, то информация о суточных лимитах будет сохраняться в Srif32.ini.

ResponseDel - Префикс для выходного файла, который указывает мэйлеру, что файл следует удалить после отправки. По стандарту (и по умолчанию) '-'. Для т-майла '^', для Аргуса '-'.

ResponseStay - Префикс для выходного файла, который указывает мэйлеру, что файл после отправки не должен изменятся. По стандарту и по умолчанию '+'. Для т-майла - пустая строка, для Аргуса '+'.

Debug - Отладочный режим. Если равен 1, то при работе менеджера будет создан каталог с именем типа:

r.n.p
, где r - регион,
n - нода,
p - поинт.

В этот каталог упадут копии файлов:

SRIF-файла, с расширением SRIF
Файла-запроса, с расширением Req
Файла-ответа, с расширением Out
Файла-отчета, с расширением Mail.

Имя у этих файлов формируется из текущей даты (без года) и текущего времени (без секунд).

Ключ введен для отлаживания программы и в нормальной работе менеджера не нужен.

StartDir - Начальный каталог, где хранятся файлы для фреков. Если содержит пробелы, то его следует заключить в кавычки. Если задан этот каталог, то поиск запрошенных файлов начинается с него. Просматриваются также все подкаталоги в этом каталоге. По умолчанию не определено.

DirFileName - Имя файла, со списком каталогов, где хранятся файлы для фреков. Если имя содержит пробелы, то его следует заключить в кавычки. Каталоги обходятся без подкаталогов. Кроме того, в этом же файле для каждого каталога можно указать пароль на доступ к каталогу и/или список адресов, для которых разрешен/запрещен доступ к каталогам. Если не задан, то не используется. Формат файла см. в разделе " Форматы файлов".

RecurDirFileName - Имя файла, со списком каталогов, где хранятся файлы для фреков. Если имя содержит пробелы, то его следует заключить в кавычки. Каталоги обходятся с подкаталогами! Кроме того, в этом же файле для каждого каталога можно указать пароль на доступ к каталогу и/или список адресов, для которых разрешен/запрещен доступ к каталогам. Внимание! Пароль задается только для верхнего каталога. Подкаталоги будут иметь те же права! Формат файла см. в разделе "Форматы файлов".

AliasFileName - Файл описания алиасов. Если имя содержит пробелы, то его следует заключить в кавычки. Для каждого алиаса в файле можно указать пароль и/или список адресов, для которых разрешена/запрещена обработка алиасов. Если не указан, алиасы не обрабатываются. Формат файла см. в разделе "Форматы файлов". Файлы, отдаваемые по алиасам, в лимитах не учитываются!

IndexFileName - Файл-индекс. В этом файле перечисленны пути и файлы, физически находящиеся на медленном носителе, поиск по которому может затянуться. Реально в процессе обработки фряка будет производиться поиск в этом файле, и только в случае успеха, с такого носителя будут считаны размер и описание файла.
Возможно задание файла, в котором содержаться имена файлов-индексов. При этом следует перед именем файла поставить собачку "@".
Формат файла см. в разделе "Форматы файлов".

Для того, чтобы можно было уфрякать хоть что ни будь, следует задать хотя бы один из ключей: StartDir, DirFileName, RecurDirFileName, AliasFileName или IndexFileName. Постарайтесь при задании этих переменных избежать дублирования каталогов: поиск производится в каждом заданном каталоге - если один и тот же каталог будет описан в нескольких переменных, файлы в нем будут находиться и отправляться несколько раз. В большинстве случаев достаточно использовать только один из ключей StartDir, DirFileName, RecurDirFileName или IndexFileName.

ExcludeFiles - имя файла со списком файлов, которые не должны отдаваться по запросу. Например, можно поместить туда Files.BBS и другие служебные файлы, и тогда при запросе типа *.* они не отдадутся. Если имя файла содержит пробелы, то его следует заключить кавычки. Аналогично, заключаются в кавычки имена файлов с пробелами в самом ExcludeFiles. Формат файла см. в разделе "Форматы файлов".

DLC - DownLoadCounter. Если не равно пустой строке, то при обработке запросов будут обновляться DownLoadCounter в Files.bbs. Задайте вид Вашего каунтера, для его обновления. Например: [001]. Здесь '[' и ']' - префикс и суффикс. '001' задает длину поля для счетчика и, кроме того, начальное значение счетчика, который будет создан при отсутствии DLC в files.bbs. Можно задать любую размерность, а также любые префиксы/суффиксы (в том числе и вообще - отсутствие префикса/суффикса). По умолчанию='', т.е. каунтеры не обновляются.

LongFileOutput - Если Ваш мэйлер не понимает длинных имен - установите этот параметр равным 0, тогда выходной файл будет содержать короткие имена файлов. По умолчанию = 1.

Speed - Минимальная скорость, при которой разрешены фряки. Если не определена, то лимиты по скорости не проверяются.

Koef - Коэффициент для подсчета CPS при вычислении лимита времени, в % ( см. ниже). Для нормальной линии равен 91%. Зависит от протокола и качества связи. Для HST обычно = 93%. Если плохая линия - уменьшите. Если не указан, равен 91.

Time - Максимальное время для фрякания, в мин. Время учитывается при определении максимального объема при данной скорости подключения. При этом средний CPS считаем как:

CPS=(Speed/8)*(Koef/100)

Если не определено или =0, то лимиты по времени не проверяются.

Files - Максимальное количество файлов для фрякания. Если не определено или =0, то лимиты на количество файлов не проверяется.

Size - Максимальный размер фряка за один сеанс, в Кб. Если не указан или равен 0, то лимиты по размеру не проверяются.

DaySize - Дневной лимит, в кб. Кол-во, которое может быть уфрекано в течение суток. Если не указанно или равно 0, то проверка дневного лимита не производится.

DayLimit - Дневной лимит на количество файлов. Если не указанно или равно 0, то проверка дневного лимита не производится.

RemoteStatus - Если установлено в 1, то считается, что сессия с данным фрекальщиком должна быть защищенной. Если текущая сессия не парольная, а RemoteStatus=1, то лимиты для данной сессии берутся из секции [Main].

SystemStatus - Если установлено в 1, то считается, что удаленная станция должна быть в нодлисте. Если ее там не оказывается, а SystemStatus=1, то лимиты для данной сессии берутся из секции [Main].

OneFile - Если установлено в 1, то при запросе одного файла, он будет отправлен, не смотря на лимиты (кроме лимита на скорость соединения). Кроме того, у удаленной системы не должны быть исчерпаны суточные лимиты. Если в суточных лимитах еще есть хоть один килобайт и хоть один файл, то запрошенный файл отправится. А если суточные лимиты были исчерпаны еще до этого запроса - увы. Позволяет отдавать очень длинные файлы. По умолчанию = 0.

Name - Имя, от которого будут отправляться письма-отчеты (поле "From:"). Длина - не более 35 символов (если больше - будет обрезано). По умолчанию - пустая строка.

Subj - Поле "Subj:" в письме-отчете. Длина - не более 71 символа (если больше - будет обрезано). По умолчанию - пустая строка.

Origin - Ориджин для письма-отчета. По умолчанию - пустая строка.

OurAKA - Адрес в поле From: для письма-отчета. По умолчанию, если не передается в SRIF-файле, равен 0:0/0.0. Если передается в SRIF-файле, то становится равным ему.

Note - Имя файла, c которого начнется файл-отчет. Этот файл вставляется перед отчетом об отправленных файлах. В нем, например, можно указать разрешенное время для фряков, вставить баннер итд. Формат файла - обычный текст в кодировке DOS. Кроме того, допускается использование специальных переменных (подробнее см описание переменных в формате языкового файла). Если Note='', то файл-отчет не создается. По умолчанию = пустая строка.

Кроме вышеописанных ключей создаются служебные ключи: Day, TodayCount и TodaySize. После обработки запроса менеджер обновляет текущие установки суточных лимитов для конкретного адреса. Для этого он создает в файле LimitFileName секцию с адресом системы и записывает в нее эти три ключа. Day означает день последнего фрякания данным узлом. TodayCount и TodaySize - количество и объем, в Кб, уфряканного в этот день.

6. Форматы файлов

Ниже описаны форматы применяемых файлов.

LogFile

Большинство операций менеджера отражается в лог-файле. Каждая запись в логе имеет формат:

Флаг_записи Дата Время Сообщение.

Флаг - единичный символ, определяющий тип сообщения:

[Hачало сессии
]Конец сессии
~Информация
!Критическая ошибка
*Некритическая ошибка
.Переданные файлы
|Ограничения, лимиты

Начало сессии отделяется от предыдущей записи пустой строкой.

AccessLogName

Ведет хронологию результатов фряка в формате NCSA. Каждая строка имеет формат:
2:5013/1.9 - "Rodion Sagdeev" [01/Aug/1999:00:11:04] "PUT d:\filebase\base\spc_lst.txt" 0 512
Здесь все в общем то понятно. Последнее число - размер файла в байтах. Предпоследнее - еррорлевел. Можете присобачить какой либо стандартный лог-анализатор для NSCA-логов.

LangFile

Содержит несколько секций (каждая секция по названию языка) в которых определены стринги для интерфейса. Название секции служит названием языка для ключа Language в INI-файле. Первая буква ключа в языковом файле определяет "принадлежность" сообщения:

Описание ключей языкового файла можно найти в самом файле :-). Если какой либо ключ задать как пустую строку, то эта строка не появится в логе (файле-отчете и/или на экране). В ключевых строках можно использовать переменные. Переменные должны заключаться в %%. Если требуется форматирование вывода переменной, то следует внутри %% оставить пробелы. При этом под переменную будет выделено столько знакомест, сколько занимает само имя переменной (включая %%) и, кроме того, будет произведено выравнивание к тому краю, к которому прижато имя переменной. Если пробелы внутри %% будут с двух сторон от переменной, то значение переменной будет отцентрировано. Например, строка

Ваши лимиты на сегодня %           DaySize% кб
будет выглядеть как
Ваши лимиты на сегодня                 1240 кб
А строка
Ваши лимиты на сегодня %DaySize           % кб
выглядит как
Ваши лимиты на сегодня 1240                 кб
А еще
Ваши лимиты на сегодня % DaySize          % кб
выглядит как
Ваши лимиты на сегодня         1240         кб
Ну и строка
Ваши лимиты на сегодня %DaySize% кб
как
Ваши лимиты на сегодня 1240 кб
Если значение переменной окажется длиннее, чем выделенное поле, то форматирования не произойдет.

Для переменной %fDiz% правила выравнивания действуют по другому: Позиция fDiz в строке означает начало комментария. Если предыдущая строка длиннее, чем эта позиции, комментарий перенесется на следующую строчку (с этой же позиции). Если комментарий многострочный, то оставшиеся строчки будут записаны с этой же позиции. Пример:

Получи %fdir%%fName% размерчик (fSize) %      fDiz%
Получится что-то типа:
Получи c:\command.com размерчик (95192)       Мой любимый
                                              командный процессор
или так:
Получи c:\Windows\Command\command.com размерчик (95192)
                                              Мой любимый
                                              командный процессор

Ниже приведены переменные и их значения:

INIFILENAMEИмя INI-файла
SRIFИмя SRIF-файла (того, который передается параметром)
BAUDСкорость текущего соединения
AKAАдрес удаленной системы
SYSOPИмя сисопа удаленной системы
RSTATUSProtected/unprotected текущая сессия
SSTATUSListet/Unlisted удаленная система
OURAKAНаше АКА для текущей сессии
ADRСтрока адреса при ошибке его распознания
DATEДата до которой укорочен лог-файл
SPEEDЛимит по скорости для текущего фрякающего
DIRFILENAMEИмя файла каталогов DirFileName
RECURDIRFILENAMEИмя файла рекурсивных каталогов RecurDirFileName
EXCLUDEFILENAMEИмя файла со списком исключаемых файлов ExcludeFileName
ALIASFILENAMEИмя файла алиасов AliasFileName
INDEXFILENAMEИмя файла индексов IndexFileName
RESPONSELISTВыходной файл
DIZFILENAMEФайл-описание files.bbs с путем
SIZEЛимит по объему для текущего фрякающего
FILESЛимит по количеству файлов для текущего фрякающего
FREQTIMEЛимит по времени для текущего фрякающего
DAYSIZEДневной лимит по размеру
DAYLIMITДневной лимит по количеству файлов
TODAYSIZEОбъем уже уфряканного за сегодня
TODAYNUMКоличество уже уфряканного за сегодня
LANGFILEИмя языкового файла
NOTEИмя Note-файла
REQUESTLISTИмя файла со списком запрашиваемых файлов
PASSПароль на текущий ресурс
WORDПароль на доступ к ресурсу, полученный от удаленной стороны
FNAMEТекущее имя файла без пути
FDIRПуть до текущего файла. Каталог оканчивается на "\"
FSIZEРазмер текущего файла
FDIZОписание текущего файла. Если описание многострочное, то строки будут разделены только символом #13. Т.е. эта переменная пригодна только для письма-отчета
TOTALSIZEОбщий размер уфряканного за текущий сеанс
TOTALNUMОбщее количество уфряканных файлов за текущий сеанс

Старайтесь использовать переменные "по месту". Например, не стоит во фразе "Лог-файл укорочен" использовать %FDiz%. Скорее всего ничего путного не получится.

DirFileName

Каждая строка файла содержит путь, по которому будут искаться запрошенные файлы. Просмотр вложенных каталогов не производится. Если в имени пути встречаются пробелы, то его следует заключить в кавычки.

На этой же строчке можно указать пароль для доступа к этому каталогу и/или список адресов, имеющих доступ к каталогу (см " Пароли и списки адресов"). Например:

c:\windows !LAMER 2:5013/1.* /5.0 !.9
c:\windows\system 2:5013/*.*
"c:\Program Files" !Rulez
"c:\Program Files\Far"

RecurDirFileName

Каждая строка файла содержит путь, по которому будут искаться запрошенные файлы. В отличие от предыдущего параметра каталоги, указанные в этом файле обходятся вместе с подкаталогами! Формат файла полностью аналогичен DirFileName. Следует учитывать, что управление доступом будет только для описанных каталогов. Все вложенные каталоги будут иметь те же права.

AliasFileName

Строка файла состоит из алиаса и имени файла (с путем), сопоставляемое этому алиасу. Возможно указание модификатора и маски при указании имени файла. Модификатор определяет, какой из подходящих под маску файлов будет присвоен алиасу. Модификатор заключается в круглые скобки и может принимать значения:
OLDESTсамый старый из файлов, подходящих под маску
LATESTфайл, имеющий наибольшую дату создания
SMALLESTсамый маленький из файлов, подходящих под маску
LAGESTсамый большой из файлов, подходящих под маску
Если модификатор не указан, то алиасу сопоставятся все подходящие под маску файлы

Кроме того, может добавляться пароль для доступа к этому алиасу и/или список адресов, имеющих доступ к алиасу. При проверке алиасов регистр букв игнорируется.

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

Алиасу можно сопоставить список файлов. Такой список хранится в отдельном файле и подставляется в алиас через префикс "@". Если имя файла-списка содержит пробелы, то его следует заключить в кавычки вместе с префиксом "@" (например "@c:\program files\far\descript.ion").

Вот примеры правильных определений алиасов:

Dif (Latest) d:\fido\nodelist\nodediff.*
List d:\filebase\List.rar
News @d:\filebase\news.txt 2:5013/*.*
Private "d:\private dir\list.txt" !Private 2:5013\1.*
Rulez "@d:\private dir\rulez.lst" !Rulez

IndexFileName

Файл содержит список путей и имен файлов. Пути начинаются с первой позиции в строке. Если строка начинается с пробела, то она считается именем файла. В строке с путями можно задать пароль и список доступа (как в DirFileName). Если для создания индексов использовать Srif32Index.exe с параметром @имя_файла (формат такого файла аналогичен DirFileName и RecurDirFileName), то пароли и списки адресов будут перенесены из него.

ExcludeFiles

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

Файл-отчет

Во время работы менеджера будет создан файл-отчет для фрекающей стороны. Это обычный pkt-файл, создается в рабочем каталоге менеджера c уникальным именем и расширением PKT. В начало письма будет вставлен файл Note. Если Note='', то файл-отчет не создается. Для того, чтобы этот файл был отправлен фрякающему, ссылка на него помещается в ResponseList. После отправки файл будет удален мэйлером.

7. Пароли и списки адресов

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

Пароль отделяется от ресурса пробелом и символом "!". Сам "!" не является частью пароля и, между ним и паролем не должно быть пробелов. В пароле допускаются любые символы, кроме пробела. Желательно также не использовать русских букв (см раздел "По поводу русских имен"). Пароль является чувствительным к регистру букв.

Список адресов это разделенное пробелом перечисление адресов, для которых разрешен или запрещен доступ к соответствующему ресурсу. Список размещается сразу за паролем (если он есть) и отделяется от него пробелом. Знак "!" перед адресом означает запрет для этого адреса (логическое NOT). При использовании запретов и при отсутствии пароля, они не должны быть первыми в списке, иначе это будет воспринято как пароль.

В списке адресов допускаются:

Вот примеры правильного описания ресурсов:

8. Порядок построения запросов

При построении запроса нет необходимости учитывать какие либо особенности работы SRIF-менеджера. Главное, чтобы файл запроса содержал имена запрашиваемых файлов по одному на каждой строчке. Если имена запрашиваемых файлов содержат пробелы, то их следует заключить в кавычки. Например:

rar250.exe
"rar 250 for DOS.exe"

Допустимы маски, как в ДОСе. Кроме масок, допустимы подстановки путей:

rar*.*
archivators\*.*
archivators\rar\*.*
rar\*.*

Пути при поиске будут добавляться к каталогам, в которых производится поиск (описанным в DirFileName, StartDir, RecurDirFileName). Поэтому, права на доступ будут проверяться не для указанного в запросе каталога, а для того, который подставится из этих списков!

Подстановка путей позволяет указать конкретный файл, если в базе находится несколько файлов с одинаковыми именами, или, запросить всю директорию одной маской *.*.

При необходимости на строке с запрашиваемым файлом можно указать пароль. Пароль отделяется от запрашиваемого файла пробелом и начинается с символа "!". Пример:

rar250.exe !arc
*.mp3 !music

При запросе UpdatedRequest, вместе с именем файла передается дата-время его создания. Запрос будет удовлетворен только, если найденный файл будет моложе. При таких запросах подставляемый путь является местом расположения файла на запрашивающей системе, поэтому при обработке запроса он не учитывается. Дата-время файла передаются в виде количества секунд, прошедших с 1970-го года до момента создания файла. Выглядит это так:

c:\fido\filelist.txt +929577600

Знак "+" является признаком UpdatedRequest. При необходимости, после даты-времени может следовать пароль:

c:\fido\filelist.txt +929577600 !Password

9. По поводу русских имен

Поскольку Аргус есть приложение win32, то и кодировка файлов для него соответственно виндусовая. При обработке запроса файлы с русскими именами должны в нем находиться в виньковой кодировке. Однако, очень Вас прошу:

НЕ ИСПОЛЬЗУЙТЕ РУССКИХ ИМЕН!

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

Зато я уверен, что аргус может принять файлы в ДОС-кодировке, которые передает T-Mail. Вот только: сможете ли Вы их потом удалить с винчестера?
(hint: используйте команду del).

10. Индексы

Для построения индексов можно использовать прилагаемую приблуду Srif32Index. Укажите ей начальный каталог, можно ли обходить подкаталоги и выходной файл. Вместо начального каталога можно задать имя файла со списком каталогов. Формат такого файла совпадает с форматом DirFileName и RecurDirFileName.

Srif32Index.exe <StartDir|@DirFile> <-r|-n> OutFile

Если задан ключ -r, то начальный каталог будет индексирован вместе с подкаталогами. Если -n, то без них. Если в DirFile для каталогов заданы пароли или списки адресов доступа, то они перейдут в создавшийся индексный файл.

11. Статистика

Небольшая утилька позволяет просканировать файл-хронологию SRIF32 и создать файл статистики SRIFStat.tmp. При запуске STRIFStat можно указать числовой параметр - на сколько суток назад просматривать лог-файл. Просмотр ведется от текущего времени. Если параметр не задан - то просматривается весь файл-хронология.
Местоположение файла-хронологии определяется из SRIF32.ini, поэтому SrifStat должен валяться в том же каталоге, где и SRIF32.ini

12. Где найти новые версии

На www.chat.ru/~rsagdeev, если только таковые появятся :-)

Лично со мной можно связаться по адресу rsagdeev@chat.ru или 2:5013/1.9. Лучше использовать фидошный адрес, т.к. интернет для меня не бесплатный, и в ближайшее время все мои кредиты закончатся :-(

Пожалуйста, если уж дошло до того, что Вы решились написать мне, не поленитесь, укажите версию srif32, которую Вы используете. Желательно также указать тип мэйлера и операционки. Попробуйте использовать ключ Debug, возможно Вы сможете решить свою проблему сами (у меня был случай, когда один поинт в запросе все пути писал по юниксовски: archiv/rar/rar250.*. :-))

13. Хм, еще чего?

В общем, ежели вспомню еще чего - напишу.


С уважением,
RS, (c) 1999

Rodion Sagdeev

2:5013/1.9