COM модуль агента

Previous pageReturn to chapter overviewNext page

 

Файл - tiagent.dll. Файл саморегистрирующийся, для регистрации можно использовать стандартные утилиты.

 

Имя класса - "tiagent.tiag", GUID - {C001210F-A524-435E-9CFA-17D45E6F7B38}.

 

Также имеется вариант этого класса для многопоточной реализации с поддержкой событий. Имя этого класса - "tiagent.tiag2", GUID - {C9883E71-7D0A-4AE6-B85A-643CECFC92E1}.

 

Описание интерфейса.

 

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

 

( Pascal )

 

Полное описание интерфейса можно получить путем импорта библиотеки типов.

 

procedure OpenConnection(ProtoType: TProtoType; DestHost, UserName, Domain, Password: WideString; UseNTLM: WordBool);

 

Открыть соединение с сервером. Процедура Discavery будет выполнена автоматически.

 

ProtoType - Тип протокола. 0 - UDP, 1 - HTTP, 2 - SSL. Иначе протокол будет выбран в соответствии с рекомендациями сервера. Тип параметра описан в библиотеке типов модуля.

 

DestHost - IP адрес или имя сервера в сети. Если не задано, то будет выполнен автоматический поиск сервера.

 

UserNamе, Domain, Password - параметры аутентификации. UseNTLM - если не 0, то использовать NTLM. Если задано использовать NTLM, а Domain не задан, то используется текущий.

 

procedure PEOpenConnection;

 

Открыть соединение с сервером для PE режима. Параметров нет, используется только NTLM.

 

procedure CloseConnection(ClearData: WordBool);

 

Закрыть соединение с сервером. ClearData - очистить все данные, иначе очищаются только данные об ошибках.

 

function IsOpen: WordBool;

 

Возвращает состояние соединения.

 

property Timeout: Integer;

 

Свойство (запись, чтение) таймаута соединения в секундах. По умолчанию 5.

 

procedure DoDiscavery;

 

Выполняет функцию запроса Discavery. Функция OpenConnection делает это автоматически, эта же функция может потребоваться для повторного проведения этой процедуры.

 

procedure DoLogon;

 

Запрос на авторизацию.

 

procedure DoLogoff;

 

Запрос на отключение авторизации.

 

procedure ProcessData;

 

Запрос на чтение статуса клиента, состояние авторизации не меняется.

 

Следующие методы устанавливают дополнительные опции к запросу на смену параметров клиента. Это надо делать перед вызовами DoLogon или ProcessData. Опции очищаются при успешной отработке запроса или при закрытии соединения.

 

procedure ChangePassword(const NewPassword: WideString);

procedure ChangeFilterLevel(NewFilterLevel: Integer);

procedure ChangeCacheMode(NewMode: Integer);

 

property ClientVer: WideString;

 

Опция к запросу на сервер, позволяет передать ему версию клиента. По умолчанию берется из версии COM модуля.

 

Если в процессе выполнения соединения или запроса произошла ошибка, то может быть вызвано исключение, или выставляются коды ошибок, что может быть прочитано методами -

 

function Status: TResponseStatus;

 

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

 

Status_None - статус неизвестен, операция не произведена.

Status_OK - запрос успешен.

Status_ServerReject - сервер отклонил запрос. Для уточнения смотрите ErrorCode, соответствует параметру Reason, описанному в HTTP протоколе авторизации.

Status_Timeout - таймаут соединения или выполнения запроса. Таймаут задается отдельным свойством.

Status_ServerNotFound - сервер не найден.

Status_ServerInaccessible - имя сервера в сети известно, но служба не отвечает;

Status_SocketError - ошибка сокета. Код ошибки в ErrorCode.

Status_SSPIError - ошибка подсистемы SSPI Windows.

Status_IncorrectServerData - с сервера получены некорректные данные.

Status_IncorrectServerVer - версия программы на сервере не совместима.

Status_HTTP - для протоколов HTTP/SSL сервер позвратил ошибку в HTTP ответе. Код ошибки в ErrorCode.

Status_ProtoNotSupported - протокол сервером не поддерживается. Может быть запрещен его настройками.

 

function ErrorCode: Integer;

 

См. функцию Status.

 

function ErrorText: WideString;

 

Дополнительная информация (сообщение) об ошибке.

 

Следующие данные доступны после выполнения запроса Discavery, они соответствуют параметрам, описанным в HTTP протоколе авторизации.

 

function ServerVer: WideString;

function ProxyPort: Integer;

function HTTPPort: Integer;

function SocksPort: Integer;

function SSLPort: Integer;

function RecomendedProtocol: integer;

function SSLHost: WideString;

function ServerIP: WideString;

 

function IsDiscavery: WordBool;

 

Возвращает true, если запрос Discavery был отработан.

 

Следующие данные доступны после выполнения запросов DoLogon и ProcessData, они соответствуют параметрам, описанным в HTTP протоколе авторизации.

 

function ServerTime: TDateTime;

function BlockState: Integer;

function BillState: Integer;

function Ballance: Double;

function Currency: WideString;

function TrafExclude: Double;

function BillTraffic0: Double;

function FilterLevel: Integer;

function FilterCurrLevel: Integer;

function CacheMode: Integer;

function CacheEnabled: WordBool;

function PassChangeEn: WordBool;

function ServiceMask: Integer;

function ProxyConf: WordBool;

function RefInterval: Integer;

function FXCaption(Index: Integer): WideString;

function CurrentLogonName: WideString;

function ServiceMask_EnableProxy: WordBool;

function ServiceMask_EnableWWWServ: WordBool;

function ClientActive: WordBool;

 

function GetMessagePopup(out Mess: WideString; out TimeSend: TDateTime; out TimeDeliv: TDateTime): WordBool;

 

Возвращает true, если после выполнения запросов DoLogon и ProcessData было получено сообщение. TimeSend - время отправки сообщения администратором, TimeDeliv - время его приема модулем. После вызова этого метода сообщение удаляется.

 

function RequestServerCert(ReqChain: WordBool; const DestHost: WideString): OleVariant;

 

Запрашивает серверные сертификаты. Может использоваться для установки у клиента сертификатов доверенных издателей (см. ReqChain = true).

 

ReqChain - если false, то запрашивается сертификат сервера (в формате X.509). Если true, то запрашивается набор сертификатов издательств (в формате PFX, пароль - пустой).

 

DestHost - имя хоста или IP адрес сервера. Если заранее неизвестно, то предварительно может быть получено процедурой Discavery.

 

Возвращает сертификат ввиде одномерного массива типа Byte.

 

 

 

 

Для C/C++ описание интерфейса аналогично, его можно получить путем импорта библиотеки типов.

 


 

Для класса tiagent.tiag2 имеются дополнительные методы -

 

procedure Cancel;

 

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

 

function CancelHandle: Integer;

 

Возвращает Handle Event обьекта Windows. Для отмены запросов можно вызвать SetEvent для этого обьекта.

 

Для класса tiagent.tiag2 также имеется поддержка событий (интерфейс ITIAg2Events) .

 

procedure OnStatus(Status: Integer; Code: Integer; const Text: WideString);

 

Вызывается по завершению запроса.

 

procedure OnMessagePopup(const Mess: WideString; SendTime: TDateTime);

 

Вызывается, если было принято сообщение.

 

procedure OnDiscavery;

 

Вызывается по завершению процедуры Discavery.

 


Текущая страница справки: help.smart-soft.ru/index.html?sdkagentcom.htm

Сайт разработчиков Traffic Inspector