T-mail

14.Процессы и флаги (Process_Flag)

T-Mail использует в своей работе один определенный файл-флаг, задаваемый переменной Flag_Session в t-mail.ctl. Этот текстовый файл T-Mail создает при начале любого сеанса связи и уничтожает после его окончания. По умолчанию создается в каталоге, определенном переменной Flag_Dir (t-mail.ctl). Ниже приведен пример этого файла:

System 2:5030/91.0

Mode Answering

AKA 2:5030/91.0

AKA 228:5001/13.0

AKA 666:7000/91.0

SysOp Serg Biryukov

Baud 21600

SystemStatus LISTED

RemoteStatus PROTECTED

Time 210

RequestList d:\t-mail\packets\T-$$-1\13A60097.RQ

ResponseList d:\t-mail\packets\T-$$-1\RESPONSE.FRQ

Структура этого файла проста, в начале строки находится наименование параметра (набор ключевых слов жестко задан), за которым следует значение. Все параметры, за исключением "AKA", присутствуют в файле лишь в одном экземпляре. Этот файл совместим со стандартом SRIF. Ниже кратко описаны возможные параметры:

System √ основной адрес, предъявленный удаленной системой. Для узлов всегда добавляется ".0".

Mode √ тип сеанса связи. Возможные значения:

Calling √ сеанс после исходящего вызова;

Answering √ сеанс после входящего вызова.

AKA √ обязательно присутствует хотя бы один параметр AKA √ первый. В нем повторяется основной адрес, указанный в параметре System. В каждой последующей строке AKA указывается дополнительный адрес, предъявленный удаленной системой. Для узлового адреса всегда добавляется ".0". Таких строк будет столько, сколько дополнительных адресов предъявлено удаленной системой.

SysOp √ имя системного оператора удаленной системы.

Baud √ скорость передачи (бод), установленная в начале сеанса.

SystemStatus √ статус удаленной системы. Возможные значения:

LISTED √ система присутствует в списке известных адресов (см. "Списки адресов", гл.2);

UNLISTED √ система не присутствует в списке известных адресов.

RemoteStatus √ статус сеанса. Возможные значения:

PROTECTED √ сеанс связи с паролем;

UNPROTECTED √ сеанс связи без пароля.

Time √ значениепеременной Freq_MaxTime(t-mail.ctl), а если она не определена, то √1.

RequestList √ полное имя файла с файловым запросом (для SRIF-процессора).

ResponseList √ полноеимя файла с ответом на файловыйзапрос (для SRIF-процессора).

Подчеркиванием отмечены параметры, используемые SRIF-процессорами.

Все остальные флаги являются необязательными. С помощью переменных Process_Flag (подробно описаны в главе 7 "Файлы конфигурации") вы можете задавать реакцию T-Mail на любые флаги, созданные как самим T-Mail (например, с помощью переменных Process), так и внешними программами. В переменных Process_Flag вы можете задать выполнение внутренних процедур (сканирование почты, вызов системы, создание и удаление файлов и т.д.) или внешних программ, которые будут выполняться при появлении, исчезновении или изменении соответствующего флага. Такой механизм, в частности, удобно использовать для организации обработки эхопочты.

В версиях T-Mail для OS/2 и Windows NT вместо файлов-флагов можно использовать системные семафоры. Они используются абсолютно аналогично, но располагаются не на дисковом устройстве, а в оперативной памяти, что резко увеличивает скорость работы с ними. Для того, чтобы T-Mail знал, что флаг является не файлом, а системным семафором, имя семафора должно начинаться со строки "\SEM32\", например: \SEM32\arcmail.

Пример (t-mail.ctl):

[S] Process═══ Arcmail══ Create anyarc.t-m══ ; создается флаг

...

[M] Process_Flag anyarc.t-m c:\squish\squish -In -Out ;запуск эхопроцессора

 

В этом примере после успешного завершения сеанса связи с принятой эхопочтой задача Slave создаст флаг 'anyarc.t-m'. Во время очередного сканирования флагов задача Master, обнаружив этот флаг, выполнит определенные действия с эхопроцессором для обработки пришедшей почты.