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

версия 2.01


  1. О ПРОГРАММЕ
  2. ЛИЦЕНЗИОННОЕ СОГЛАШЕНИЕ
  3. ЗАПУСК МЕНЕДЖЕРА
    1. Из Аргуса
    2. Из Т-майла
    3. Прочие мэйлеры
  4. SRIF-ФАЙЛ
  5. INI-ФАЙЛ
  6. ФОРМАТЫ ФАЙЛОВ
    1. LogFile
    2. AccessLogName
    3. LangFile
    4. DirFileName
    5. ExcludeFiles
    6. Файл-отчет
    7. Пароли на пакеты
    8. Черный список
  7. МЕТОДЫ РАЗДЕЛЕНИЯ ДОСТУПА
    1. Пароли
    2. Списки адресов
    3. Список лимитов
    4. Кроны
    5. Черный список
  8. ПОРЯДОК ПОСТРОЕНИЯ ЗАПРОСОВ
  9. ПО ПОВОДУ РУССКИХ ИМЕН
  10. ИНДЕКСЫ
  11. ОБРАБОТКА ПОВТОРНОГО ЗАПРОСА
  12. SRIFStat
  13. Конфигуратор Srif32Config.
  14. ГДЕ НАЙТИ НОВЫЕ ВЕРСИИ
  15. ХМ, ЕЩЕ ЧЕГО?

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

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

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

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

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

BlackNote.txt Файл для отправки системам из черного списка
File_id.diz Описание архива
History.txt Изменения и дополнения прошлых версий
Note.txt Пример файла-вставки для отчета
Note.tpl Пример файла-вставки от Serhiy Prosyanyk 2:463/485. Для его нормального отображения в lng-файле нужно заменить "не ограничено" на "не огр."
sfmail.bat bat-файл для запуска менеджера из sfmail
Srif32.als Пример файла описания алиасов
Srif32.black Пример файла черного списка
Srif32.dirs Пример файла со списком каталогов
Srif32.doc.htm Документация по Srif32 (в HTML формате)
Srif32.Excl Пример файла со списком исключаемых файлов
Srif32.exe Исполняемый файл
Srif32.faq Часто задаваемые вопросы (и ответы)
Srif32.ini Файл с настройками
Srif32.lng Файл языков интерфейса
Srif32.ndx Пример файла-индекса
Srif32.pass Пример файла со списком паролей
Srif32.rDir Пример файла со списком каталогов
Srif32Config.exe ГУЕвый конвигуратор для настройки менеджера
Srif32Config.ini Служебный файл конфигуратора
Srif32Index.exe Утиль для создания файлов-индексов
SRIFStat.exe Доп-утиль для сбора статистики по фрякам
SRIFStat.tpl Шаблон для файла статистики
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-файл").

Встречаются мэйлеры, которые не создают такого файла. Как праило, они запускают внешний freq-процессор с набором параметров. Все что Вам нужно в этом случае - создать из этих параметров srif-файл, после чего запустить менеджер обычным образом. Рассмотрим такой случай на примере sf-mail. Из его доки узнаем, что внешний freq-процессор пускается через ключ FR_Xternal. При этом возможны слкдующие параметры (только те, что нам интересны):

     *T - номер линии;
     *B - скорость текущего или последнего соединения;
     *A - адрес станции, с которой была последняя сессия;
     *Q - имя  принятого  файлового  запроса
          (работает только с внешним реквест-процессором);
     *O - имя оператора станции, с которой идет или прошла сессия;
     *X - SECURE если сессия защищена паролем, и UNSECURE
          в  противном случае;
     *R - файл ответа от внешнего реквест-процессора;
Наши действия:
1. Пишем в конфиге sfmail-а
FR_Xternal путь\sfmail.bat *A *R *Q *O *B *X *T
2. В батничке направляем параметры в какой ни будь временный файл
3. Вызываем (в том же батнике) srif32 с параметром - этим файлом
4. Удаляем временный файл.
Как что перенаправлять - смотрите конкретно в батничке (из комплекта поставки). Обращаю внимание только на два момента: то как формируется параметр RemoteStatus (Protected/Unprotected). И то, что поскольку среди параметров sfmail-а нет отвечающего за Listed/Unlisted - все системы будут Listed (соответственно - не будут работать соответствующие ограничения в менеджере).

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

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). Имя начинается с символа "^", что говорит мэйлеру о необходимости удалить этот файл после его отправки.

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

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 - номера зоны, региона, ноды и поинта фрякающего.

Таким образом осуществляется наследование параметров по секциям.

Каждый ключ (кроме ключей задания параметров лог-файлов) может содержать три значения, разделенных пробелом. Первое значение выбирается для систем, сессия с которыми парольная (Protected). Второе значение - для непарольных сессий с системами, которые включены в нод/поинтлист (Listed-системы). Третье - для непарольных систем отсутствующих в нод/поинт-листах (Unlisted). Если один из параметров отсутствует, то он приравнивается более левому :-). Пример:

     Time=90 30 10
В этом примере время для фряков для Listed/Protected 90 минут, для Listed/UnProtected - 30 минут, для UnListed - 10 минут.

Если какой либо ключ отсутствует - его значение наследуется из "старшей" секции (см выше). Пример:

  [main]
  Time=90 30

  [2:5013/*.*]

  [2:5013/1.*]
  Time=120
Здесь для UnListed системы будут следующие лимиты: если адрес системы 2:5013/1.* - 120 минут (унаследуется значение слева), а если адрес 2:5013/*.* - 10 минут (унаследуется от main, где, в свою очередь, унаследуется слева)

Если какой либо параметр будет равен '!BlackList!', то соответствующая сессия будет считаться "в черном списке" (подробнее см. " Черный список").

Для удобства настройки можно воспользоваться прилагаемой тулзой Srif32Config.

Вот описание ключей 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 - Префикс для выходного файла, который указывает мэйлеру, что файл после отправки не должен изменятся. По стандарту и по умолчанию '+'. Для т-майла - пустая строка, для Аргуса '+'.

LastReq - Поведение мэйлера на повторный запрос после обрыва сессии. При обрыве сессии удаленная сторона не уничтожает запрос, и, при следующем коннекте он еще раз попадает на обработку к менеджеру. Этот ключ указывает, что должен делать SRIF32, если получит два подряд одинаковых запроса в течение суток. Возможные значения:
NONEПовторный запрос обрабатывается как обычно. Это значение по умолчанию.
REPEATПовторный запрос будет обработан, но информация о нем не будет записана в лог-файл, а также не будут обновлены суточные лимиты. Применяется для мэйлеров, которые при обрыве сессии уничтожают холд от внешнего Srif-менеджера (н-р т-майл).
IGNOREПовторный запрос игнорируется. Применяется для мэйлеров, которые оставляют результаты работы freq-менеджера на холде (н-р аргус).
Подробнее об использовании этого ключа смотрите "Обработка повторного запроса".

LastReqTime - Время, в течение которого текущий запрос, если он идентичен предыдущему, будет считаться повторным.

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

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

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

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

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

При Debug=2 кроме вышеперечисленного, в лог будет писаться информация о текущем исполняемом модуле. Будьте осторожны - в лог будет добавленно очень много записей - размер лога будет расти в несколько раз быстрее, чем обычно.

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

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

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

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

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

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

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

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

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

Если перед цифровым полем поставить '%', то размер счетчика будет динамическим, начиная от кол-ва символов числового поля. Н-р, при DLC=[%001] счетчиками будут считаться [001],[0001] и т.д. Кроме того, будет производится автоинкремент разрядности в случае перехода "через ноль": т.е. [999] изменится на [1000].

По умолчанию DLC='', т.е. каунтеры не обновляются.

OffLineDLC Имя файла, в котором будут храниться Счетчики скачиваний (DLC) для _всех_ файлов. По умолчанию - счетчики обновляются в файлах files.bbs, в тех же каталогах, где лежат сами файлы. OffLineDLC можно использовать при наличии readOnly базы (например, если база на сидюке или в сети).

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

LongDescChar опpеделяет, какой cимвол иcпользуется для распознавания длинного комментаpия. По умолчанию - пустая строка. Кроме указанного символа, (и независимо от его установки), как начало длинного коментария используется пробел.

OEMOutput - Если Вы используете досовый мэйлер, установите этот параметр равным 1. Выходной файл будет имена файлов в кодировке DOS. По умолчанию =0.
Примечание: Прочтите "По поводу русских имен" перед тем, как решиться использовать русские имена!

Cron - Разрешенное время для фряков. Можно задавать как в виде кронов (как в аргусе), так и в виде временных интервалов (как в т-майле). Например, чтобы разрешить фряки с 19:00 до 7:00 в будни, и круглосуточно - по выходным:

   Cron="* 19-23,0-6 * * *; * 7-18 * * 6,7"
   или
   Cron="1.19:00-7.07:00, 6.7:00-7.19:00"
Несколько кронов разделяются точкой-с-запятой. Интервалы можно разделять как точкой-с-запятой, так и просто запятой.
По умолчанию = "* * * * *", т.е. фряки разрешени круглосуточно.
Если интервал записать без пробелов, то можно не заключать его в кавычки.

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

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

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

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

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

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

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

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

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

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

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

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

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

OurAKA - Адрес в поле From: для письма-отчета. Если отсутствует или равно пустой строке, то берется из SRIF-файла. Если же и там его не окажется, то будет приравнено "0:0/0.0".

BlackList - имя файла ЧерногоСписка. Формат файла см. "Форматы файлов".

BlackNote - имя файла, который будет вставлен в файл-отчет для систем, находящихся в ЧерномСписке.

AutoBlackList - Список лимитов, при невыполнении которых адрес системы (основной) будет занесен в ЧерныйСписок. Список лимитов см в Список лимитов

Note - Имя файла-шаблона для файл-отчета. В нем, например, можно указать разрешенное время для фряков, вставить баннер итд. Формат файла см. "Форматы файлов".

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

PktPass - Пароль для письма-отчета. Возможно указание внешнего файла с паролями, например: PktPass=@c:\fido\t-mail\password.lst
Формат файла полностью соответствует аналогичному файлу в t-mail (о формате файла см. в разделе "Форматы файлов".
При PktPass=@SrifPassword пароль для ПКТ-шника будет браться из srif-файла (см. srif-файл.

По умолчанию = пустая строка (пакеты непарольные).

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

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

Ниже описаны форматы применяемых файлов. Если в этих файлах Вы применяете имена с русскими символами, то они должны быть в ДОС-кодировке.

LogFile

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

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

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

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

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

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)
                                              Мой любимый
                                              командный процессор

Ниже приведены переменные и их значения (в скобках даны короткие синонимы для некоторых переменных):

#nСимвол с кодом n в ANSI-кодировке (виндусовой). Если n>256, будет взят младший байт
ADRСтрока адреса при ошибке его распознания
AKAАдрес удаленной системы
ALIASFILENAMEИмя файла алиасов AliasFileName
BAUDСкорость текущего соединения
BLACKLISTИмя файла ЧерногоСписка
CRONРазрешенное время фряка для текущего соединения
CCRONРазрешенное время фряка для текущего ресурса
DATEТекущая дата. Формат времени соответствует установленному в настройках Windows
DAYCOUNT (DC)Дневной лимит по количеству файлов
DAYSIZE (DS)Дневной лимит по размеру
DIRFILENAMEИмя файла каталогов DirFileName
DIZFILENAMEФайл-описание files.bbs с путем
EXCLUDEFILENAMEИмя файла со списком исключаемых файлов ExcludeFileName
FDIRПуть до текущего файла. Каталог оканчивается на "\"
FDIZОписание текущего файла. В описание не будут включены DownLoad Counter-ы
FILES (F)Лимит по количеству файлов для текущего фрякающего
FNAMEТекущее имя файла без пути
FREQTIME (T)Лимит по времени для текущего фрякающего
FSIZEРазмер текущего файла
INDEXFILENAMEИмя файла индексов IndexFileName
INIFILENAMEИмя INI-файла
LANGFILEИмя языкового файла
LDATEДата до которой укорочен лог-файл
LDСHARСимвол начала длинного коментария
LIMITFILENAMEИмя файла лимитов
MONTHNUM (MN)То же, что и TodayNum, но за месяц
MONTHSIZE (MS)То же, что и TodaySize, но за месяц
MCOUNT (MC)То же, что и DayCount, но за месяц
MSIZE (MZ)То же, что и DaySize, но за месяц
NOTEИмя Note-файла
OURAKAНаше АКА для текущей сессии
PASSПароль на текущий ресурс
PTIMEПланируемое время на передачу файлов. Значение будет валидным только после постановки всех файлов в очередь, т.е. использовать в отчете нужно после @begin...@end.
RECURDIRFILENAMEИмя файла рекурсивных каталогов RecurDirFileName
REQUESTLISTИмя файла со списком запрашиваемых файлов
RESPONSELISTВыходной файл
RSTATUSProtected/unprotected текущая сессия
SFDIZКороткое описание файла (первая строчка из files.bbs)
SIZEЛимит по объему для текущего фрякающего
SPEEDЛимит по скорости для текущего фрякающего
SRIFИмя SRIF-файла (того, который передается параметром)
SSTATUSListet/Unlisted удаленная система
SYSOPИмя сисопа удаленной системы
TEMPDIRСлужебный каталог для временных файлов
TIMEТекущее время. Формат времени соответствует установленному в настройках Windows
TODAYNUM (TN)Количество уже уфряканного за сегодня
TODAYSIZE (TS)Объем уже уфряканного за сегодня
TOTALNUM (N)Общее количество уфряканных файлов за текущий сеанс
TOTALSIZE (S)Общий размер уфряканного за текущий сеанс
WORDПароль на доступ к ресурсу, полученный от удаленной стороны
WORKDIRРабочий каталог программы
WEEKNUM (WN)То же, что и TodayNum, но за неделю
WEEKSIZE (WS)То же, что и TodaySize, но за неделю
WCOUNT (WC)То же, что и DayCount, но за неделю
WSIZE (WZ)То же, что и DaySize, но за неделю

Кроме вышеуказанных есть специальные переменные для содержимого srif-файла. Эти переменные начинаются с символа $ и имени параметра из srif-файла. Например, для файла, приведенного в разделе описания SRIF-файла будут созданы следующие переменные:

   $Sysop
   $AKA0
   $AKA1
   $Baud
   $Time
   $RequestList
   $ResponseList
   $RemoteStatus
   $SystemStatus
   $SessionProtocol
   $Site
   $Location
   $Phone
   $DTE
   $PORT
   $Mailer
   $MailerCode
   $SerialNumber
   $Version
   $SessionType
   $OurAKA0
   $TRANX
   $Password
Кроме того, будут созданы дополнительные переменные:
   $NAKA - колличество АКА-шек у ремоты.
   $NOURAKA - колличество акашек OurAKA.
   $NSTATUS - статус системы в цифровом формате (1-протектед
                2-анпротектед 3-анлистед).
Диапазоны изменения n для $AKAn и $OurAKAn от 0 до $NAKA-1 и $NOurAKA-1 соответственно.

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

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

DirFileName

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

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

c:\windows !LAMER 2:5013/1.* /5.0 !.9 #"All !Log" [* * * * *]
c:\windows\system 2:5013/*.* (* * * * 6-7)
"c:\Program Files" !Rulez #Baud
"c:\Program Files\Far"

RecurDirFileName

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

AliasFileName

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

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

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

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

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

При проверке алиаса регистр букв игнорируется.

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

   Dif (Latest) d:\fido\nodelist\nodediff.* #"Baud Log"
   List d:\filebase\List.rar #"Baud Log" [00:00-23:59]
   News @d:\filebase\news.txt 2:5013/*.* #"Baud Log"
   Nodelist d:\fido\nodelist\nodelist.999 #"Baud" (* * * * *)
   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='', то файл-отчет не создается. Строчка, содержащая переменную %FName% будет повторена для всех найденных файлов, а в случае, если файл не прошел по лимитам и пр. - заменена на соответствующую строку из языкоаого файла.

Для того, чтобы этот файл был отправлен фрякающему, ссылка на него помещается в ResponseList. После отправки файл будет удален мэйлером.

Файл паролей для письма-отчета

Формат файла полностью соответствует аналогичному файлу в t-mail. Пример

   2:5013/1.9  Пароль,Пароль_на_ПКТ,Пароль
   2:5013/1.10 ,Пароль_на_ПКТ,Пароль
   2:5013/1.11 ,Пароль_на_ПКТ
   2:5013/1.12 Пароль,,Пароль
Для пакетов используется второй пароль из списка. В примере у 1.12 пароль на пакеты отсутствует..

Файл-вставка для отчета

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

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

Файл Черного списка

В этот файл заносятся нежелательные линки. Возможно занесение как адресов, так и имен сисопов. Имена сисопов прописываются по одному на каждой строчке, а для адресов допустимы маски и логическое Not (см.Список адресов). Пример:

  Vasya Pupkin
  !2:*/*.* 77:*/*.*
  2:8888/*.*
  KrYt0j H/\цker

7. Методы разделения доступа

Для управления доступом служат системы паролей, списки адресов, флаги лимитов и интервалы времени.

Пароли.

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

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

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

Список адресов

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

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

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

Список лимитов

Списки лимитов исльзуются для того, чтобы к какому либо ресурсу отменить проверку некоторых ограничений. Они записываются в виде символьной строки, через пробел. Обрабатываются следующие лимиты (их названия совпадают с соответствующими ключами в ini-файле):
   Log - Записывать в AccessLog данные о сессии.
         Если не записать информацию в accesslog,
         то ее не будет в статистике. Не используется
         в автоблэклисте.
   Limit - Обновлять информацию о суточных лимитах.
           Если не задано, то суточные лимиты не обновляются.
           Не используется в автоблэклисте.
   Baud - Ограничение по скорости
   Time - Время фряка
   Files - Кол-во файлов в текущем фряке
   Size - Размер текущего фряка
   DayCount - Дневной лимит по количеству
   DaySize - Дневной лимит по размеру
   WeekCount - Hедельный лимит по количеству
   WeekSize - Hедельный лимит по размеру
   MonthCount - Месячный лимит по количеству
   MonthSize - Месячный лимит по размеру
   Cron - Кроны
   Password - Пароль на файл. Используется только для автоблэклиста.
              Если указан, то в блэклист система попадет при фряке с неверным
              паролем. Пустой пароль не считается (при запросе парольного файла
              без пароля система в Черный список не попадет).
   All - Все вышеперечисленное.

По умолчанию (при пустом списке лимитов) учитываются все лимиты (All). В описании ресурсов списки лимитов пишутся с префиксом # Если лимитов несколько, то их следует заключить в кавычки (префикс оставить перед кавычками). Например:

Допустима инверсия (с помощью префикса "!"). Порядок проверки аналогичен списку адресов.

Кроны

Кроны (интервалы времени) указывают время доступности ресурса. При этом, они могут накладываться на кроны текущего юзера. Кроны записываются в строке описания ресурсов в квадратных или круглых скобках. Если крон записан в квадратных скобках, то наложение на крон текущего юзера будет по AND, а если в круглых - по OR.

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

Кроны
Формат:
  Минуты Часы Дни Месяцы ДниНедели
  Диапазоны значений:
   Минуты       0-59
   Часы         0-23
   Дни          1-31
   Месяцы       1-12
   ДниНедели    1-7 (1-понедельник ... 7-воскресенье)
Можно использовать список значений, разделенных запятыми (например 1,3,7), или записывать диапазон через "черточку" (например 1-5). '*' означает все возможные значения. Конструкция вида 1-10/2 означает каждый второй час в интервале от 1 до 10. Несколько кронов разделяются точкой-с-запятой.
Интервалы времени
Формат:
  ДеньНедели.Часы:Минуты-ДеньНедели.Часы:Минуты
  ^^^^^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^
    Начало интервала       Окончание интервала
ДеньНедели можно опустить (вместе с точкой). Допустимы только корректные числовые значения (диапазоны - как у кронов, только в дне недели допускается 0 (воскресенье)). Несколько интервалов разделяются запятой или точкой-с-запятой.

Вот несколько примеров:

Черный список

Существует возможность задавать список узлов, запросы от которых не будут обрабатываться. Такие узлы нужно перечислить в файле BlackList. Возможно перечисление не только адресов, но и имен сисопов. Подробнее см формат"ЧерногоСписка".

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

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. По поводу русских имен

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

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

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

Для тех, кто не понял (а такие встречаются) объясняю еще раз:
Один из мэйлеров (например аргус) берет найденый srif-ом файл в своей кодировке (Win). При отправке имя файла (а затем и файл :-) передается модему. Модем, это такая штука, которая ничего не знает о кодировках, файлах и прочей бредятине. Он передает полученные символы (а эти из этих символов состоит имя нашего файла - если его читать в вин-кодировке) другому модему. Другой модем передает принятую последовательность принимающему мэйлеру. Так вот, если этот мэйлер сможет правильно сопоставить принятую последовательность байт имени файла (например, если принимающий мэйлер тоже будет аргусом), то все в порядке. А если не сумеет (например, если принимающий мэйлер т-майл), то принятая последовательность окажется чем угодно, только не именем файла :-).

Если я вас еще не убедил - с этим в клинику (или куда угодно, только не ко мне :-(

10. Индексы

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

Srif32Index.exe <StartDir|@DirFile> OutFile

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

11. Обработка повторного запроса

Если во время передачи файлов произойдет обрыв сессии, то запрос на удаленной стороне (у фрякающего) не будет удален (по крайней мере - у известных мне мэйлеров). В результате, при следующем сеансе связи он будет послан еще раз, и еще раз обработается. Дальше - все зависит от Вашего мэйлера.
Аргус после получения ответа от внешнего srif-менеджера вешает найденные файлы на холд. В результате, при повторном запросе, если какие из файлов уже были отправлены, они холдятся еще раз.
Т-майл после обрыва сессии удаляет из очереди все файлы, полученные от внешнего srif-менеджера. Повторный запрос начнет отправку файлов еще раз.
В обоих случаях, при обработке повторного запроса будут "засорятся" логи и "тратится" дневные лимиты. Чтобы как то облегчить эту участь, можно использовать ключ LastReq. Он позволяет задать реакцию менеджера на повторный запрос. Повторным считается запрос, если он идентичен предыдущему и пришел не позднее, чем через время, указанное в LastReqTime (в часах). Для проверки на "идентичность" предыдущий запрос сохраняется в TempDir. в виде файла Zone_Region_Node_Piont.Req. Если запрос будет опознан как "повторный", то в зависимости от значения LastReq будет сделано:
NONE Ничего. Т.е. менеджер отработает запрос как обычно.
IGNORE Повторный запрос будет проигнорирован. Менеджер сразу закончит свою работу. Применяйте, если ваш мэйлер холдит результаты запроса (аргус) Действительно: зачем обрабатывать запрос повторно, если найденный файлы уже висят на холде.
REPEAT Менеджер отработает запрос как обычно, но при этом запись отправленных файлов в лог не ведется и дневные лимиты не уменьшаются. Используйте совместно с мэйлером, который удаляет результаты предыдущего запроса (т-майл).

12. Статистика

Небольшая утилька позволяет просканировать файл-хронологию SRIF32 и создать файл статистики SRIFStat.tmp. При запуске STRIFStat можно указать числовой параметр - на сколько суток назад просматривать лог-файл. Просмотр ведется от текущего времени. Если параметр не задан - то просматривается весь файл-хронология. Если вместо числа первым параметром указать "L", то просмотр будет осуществлятся начиная от даты, указанной в LastStat (см srifstat.ini) и до текущего момента. По окончании просмотра LastStat примет значение из последней обработаной строчки.

Кроме этого можно передать в качестве параметра любой ключ из srifstat.ini. Например, запуская

   SrifStat.exe L Template=SrifStat.eml
после каждого запуска srif32.exe будем получать srifstat.tmp с результатами последнего фряка, отформатироваными в соответствии с темплетом SrifStat.eml. Можно сразу отправлять этот файл себе на мыло - тогда Вы будете в курсе всех текущих фряков.

Местоположение файла-хронологии указывается в srifstat.ini, или определяется из SRIF32.ini (в этом случае SrifStat должен валяться в том же каталоге, где и SRIF32.ini)

В инишнике же можно указать список адресов (см Список адресов) которые не будут фигурировать в отчете.

Еще в инишнике нужно задать (если srifstat находится не в том же каталоге, где и srif32.ini) DLC и LongDescChar - для того, чтобы правильно отрабатывались переменные описания файлов.

Формат выходного файла определяется темплетом SrifStat.tpl. В нем можно применять следующие переменные:

          AKA - Адрес системы
          SYSOP          - Имя сисопа
          BDATE          - Дата начала статистики
          EDATE          - Дата конца статистики
          BTIME          - Время начала статистики
          ETIME          - Время конца статистики
          FDIR           - Каталог, из которого был фрек
          FNAME          - Имя файла
          FDIZ           - Описание файла (правила выравнивания аналогичны
                           fdiz для файл-отчета
          SFDIZ          - Короткое описание файла
          FSIZE          - Размер файла, байт
          DATE           - Дата фряка
          TIME           - Время фряка
          TOTALSIZE      - Общий размер для данного АКА, кб
          TOTALNUM       - Общее количество для данного АКА
          GRANDTOTALSIZE - Общий размер для всего периода, кб
          GRANDTOTALNUM  - Общее количество для всего периода
          #n - символ с кодом n в СР1251. Если n>256, будет взят младший байт
Все это обворачивается в @begin_user ... @end_user (для перебора всех АКА), внутри которых цикл для перебора файлов - @begin_files ... @end_files

13. Конфигуратор Srif32Config

Этот тулз предназначен для наглядного конфигурирования srif32. Просто запустите его из того-же каталога, где лежит srif32.ini. Теоретически - там все понятно :-). Скажу только, что серым цветом выделяются значения, которые наследованы или их значение остается "по умолчанию". Если же поле белое - значит его значение вы задали явно! (даже если это значение "пустая строка")

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

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

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

Пожалуйста, если уж дошло до того, что Вы решились написать мне, не поленитесь, укажите версию srif32, которую Вы используете. Желательно также указать тип мэйлера и операционки. Попробуйте использовать ключ Debug, возможно Вы сможете решить свою проблему сами

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

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


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

Rodion Sagdeev

2:5013/1.9