8. ПОРЯДОК ПОСТРОЕНИЯ ЗАПРОСОВ
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-файл для запуска менеджера из т-майла |
Для нормальной работы менеджера, ему следует передать один параметр - стандартный 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].
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 |
|
В этот каталог упадут копии файлов:
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 - количество и объем, в Кб, уфряканного в этот день.
Ниже описаны форматы применяемых файлов.
Большинство операций менеджера отражается в лог-файле. Каждая запись в логе имеет формат:
Флаг_записи Дата Время Сообщение.
Флаг - единичный символ, определяющий тип сообщения:
[ | Hачало сессии |
] | Конец сессии |
~ | Информация |
! | Критическая ошибка |
* | Некритическая ошибка |
. | Переданные файлы |
| | Ограничения, лимиты |
Начало сессии отделяется от предыдущей записи пустой строкой.
Ведет хронологию результатов фряка в формате NCSA. Каждая строка имеет
формат:
2:5013/1.9 - "Rodion Sagdeev" [01/Aug/1999:00:11:04]
"PUT d:\filebase\base\spc_lst.txt" 0 512
Здесь все в общем то понятно. Последнее число - размер файла в байтах.
Предпоследнее - еррорлевел. Можете присобачить какой либо стандартный
лог-анализатор для NSCA-логов.
Содержит несколько секций (каждая секция по названию языка) в которых определены стринги для интерфейса. Название секции служит названием языка для ключа 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 | Имя сисопа удаленной системы |
RSTATUS | Protected/unprotected текущая сессия |
SSTATUS | Listet/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%. Скорее всего ничего путного не получится.
Каждая строка файла содержит путь, по которому будут искаться запрошенные файлы. Просмотр вложенных каталогов не производится. Если в имени пути встречаются пробелы, то его следует заключить в кавычки.
На этой же строчке можно указать пароль для доступа к этому каталогу и/или список адресов, имеющих доступ к каталогу (см " Пароли и списки адресов"). Например:
c:\windows !LAMER 2:5013/1.* /5.0 !.9
c:\windows\system 2:5013/*.*
"c:\Program Files" !Rulez
"c:\Program Files\Far"
Каждая строка файла содержит путь, по которому будут искаться запрошенные файлы. В отличие от предыдущего параметра каталоги, указанные в этом файле обходятся вместе с подкаталогами! Формат файла полностью аналогичен DirFileName. Следует учитывать, что управление доступом будет только для описанных каталогов. Все вложенные каталоги будут иметь те же права.
Строка файла состоит из алиаса и имени файла (с путем), сопоставляемое этому алиасу. Возможно указание модификатора и маски при указании имени файла. Модификатор определяет, какой из подходящих под маску файлов будет присвоен алиасу. Модификатор заключается в круглые скобки и может принимать значения:
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
Файл содержит список путей и имен файлов. Пути начинаются с первой позиции в строке. Если строка начинается с пробела, то она считается именем файла. В строке с путями можно задать пароль и список доступа (как в DirFileName). Если для создания индексов использовать Srif32Index.exe с параметром @имя_файла (формат такого файла аналогичен DirFileName и RecurDirFileName), то пароли и списки адресов будут перенесены из него.
Файл содержит просто список имен файлов (без путей), по одному на каждой строчке. Если имя файла содержит пробелы, то его следует заключить в кавычки.
Во время работы менеджера будет создан файл-отчет для фрекающей стороны. Это обычный pkt-файл, создается в рабочем каталоге менеджера c уникальным именем и расширением PKT. В начало письма будет вставлен файл Note. Если Note='', то файл-отчет не создается. Для того, чтобы этот файл был отправлен фрякающему, ссылка на него помещается в ResponseList. После отправки файл будет удален мэйлером.
Для управления доступом менеджер оперирует паролями и списками адресов. Все это записывается в той же строке, в которой описан соответствующий ресурс (каталог или алиас).
Пароль отделяется от ресурса пробелом и символом "!". Сам "!" не является частью пароля и, между ним и паролем не должно быть пробелов. В пароле допускаются любые символы, кроме пробела. Желательно также не использовать русских букв (см раздел "По поводу русских имен"). Пароль является чувствительным к регистру букв.
Список адресов это разделенное пробелом перечисление адресов, для которых разрешен или запрещен доступ к соответствующему ресурсу. Список размещается сразу за паролем (если он есть) и отделяется от него пробелом. Знак "!" перед адресом означает запрет для этого адреса (логическое NOT). При использовании запретов и при отсутствии пароля, они не должны быть первыми в списке, иначе это будет воспринято как пароль.
В списке адресов допускаются:
Адреса в 4D формате, например:
2:5013/1.0 2:5013/1.9
Неуказанный номер поинта приравнивается к 0, например - строка, аналогичная предыдущей:
2:5013/1 2:5013/1.9
Вместо любой части адреса возможна подстановка "*", пример:
2:5013/1.* 2:5013/*.0
Константа "All" заменяет собой маску "*:*/*.*", например
All !2:5013/1.999
Возможна подстановка части адреса. При этом вместо недостающих частей будут подставлены соответствующие части из OurAKA. Пример:
.9 /*.0
Внимание: будьте осторожны при использовании части адреса, т.к. OurAKA может принимать различные значения для разных систем.
Вот примеры правильного описания ресурсов:
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
Поскольку Аргус есть приложение win32, то и кодировка файлов для него соответственно виндусовая. При обработке запроса файлы с русскими именами должны в нем находиться в виньковой кодировке. Однако, очень Вас прошу:
НЕ ИСПОЛЬЗУЙТЕ РУССКИХ ИМЕН!
Не, в принципе - фряки с русскими именами даже работают (на Аргусе). Вы даже не заметите разницы, до тех пор, пока у фрякающего стоит Аргус. Иначе - я не уверен, что т-майл сможет принять файлы с именами в виньковой кодировке.
Зато я уверен, что аргус может принять файлы в ДОС-кодировке, которые
передает T-Mail. Вот только: сможете ли Вы их потом удалить с винчестера?
(hint: используйте команду del).
Для построения индексов можно использовать прилагаемую приблуду Srif32Index. Укажите ей начальный каталог, можно ли обходить подкаталоги и выходной файл. Вместо начального каталога можно задать имя файла со списком каталогов. Формат такого файла совпадает с форматом DirFileName и RecurDirFileName.
Srif32Index.exe <StartDir|@DirFile> <-r|-n> OutFile
Если задан ключ -r, то начальный каталог будет индексирован вместе с подкаталогами. Если -n, то без них. Если в DirFile для каталогов заданы пароли или списки адресов доступа, то они перейдут в создавшийся индексный файл.
Небольшая утилька позволяет просканировать файл-хронологию SRIF32 и создать
файл статистики SRIFStat.tmp. При запуске STRIFStat можно указать числовой
параметр - на сколько суток назад просматривать лог-файл. Просмотр ведется
от текущего времени. Если параметр не задан - то просматривается весь
файл-хронология.
Местоположение файла-хронологии определяется из SRIF32.ini, поэтому SrifStat
должен валяться в том же каталоге, где и SRIF32.ini
На www.chat.ru/~rsagdeev, если только таковые появятся :-)
Лично со мной можно связаться по адресу rsagdeev@chat.ru или 2:5013/1.9. Лучше использовать фидошный адрес, т.к. интернет для меня не бесплатный, и в ближайшее время все мои кредиты закончатся :-(
Пожалуйста, если уж дошло до того, что Вы решились написать мне, не поленитесь, укажите версию srif32, которую Вы используете. Желательно также указать тип мэйлера и операционки. Попробуйте использовать ключ Debug, возможно Вы сможете решить свою проблему сами (у меня был случай, когда один поинт в запросе все пути писал по юниксовски: archiv/rar/rar250.*. :-))
В общем, ежели вспомню еще чего - напишу.
RS, (c) 1999 |