Sm_AgentApi_Tunnel()
この関数は、ポリシー サーバ側のリモート サービスとエージェント間でデータを転送する場合にコールします。Sm_AgentApi_GetMaxTunnelBufSize() 関数のコールでは、転送可能な最大のデータ サイズが提供されます。現時点では、この関数は、各コールにつき 1 つのバッファのみをサポートします。 pServiceRequest は、ポリシー サーバによって呼び出されるリモート サービスに関する情報を保持します。
casso127jpjp
この関数は、ポリシー サーバ側のリモート サービスとエージェント間でデータを転送する場合にコールします。Sm_AgentApi_GetMaxTunnelBufSize() 関数のコールでは、転送可能な最大のデータ サイズが提供されます。現時点では、この関数は、各コールにつき 1 つのバッファのみをサポートします。
pServiceRequest
は、ポリシー サーバによって呼び出されるリモート サービスに関する情報を保持します。注:
SMTUNNEL は、事前定義済みトンネル エージェント名であり、その共有秘密キーも SMTUNNEL です。事前にエージェントを作成しなくても、これらの名前を使用して、トンネル エージェントを初期化できます。事前定義済みの SMTUNNEL エージェントは、Sm_AgentApi_Tunnel() のみをコールできます。名前と共有秘密キーが SMTUNNEL のトンネル エージェントを明示的に作成する場合も、このトンネル エージェントは Sm_AgentApi_Tunnel() のコールに制限されます。
SMTUNNEL という名前のエージェントが Sm_AgentApi_Tunnel() 以外の関数をコールした場合、ポリシー サーバはエラーを返します。
構文
int SM_EXTERN Sm_AgentApi_Tunnel (const void* pHandle,const int nServer,const char* lpszClientIpAddr,const char* lpszTransactionId,const Sm_AgentApi_ResourceContext_t* pResourceContext,const Sm_AgentApi_TunnelServiceRequest_t* pServiceRequest,long* pRespNumAttributes,Sm_AgentApi_Attribute_t** ppRespAttributes);
パラメータ | I/O | 説明 |
pHandle
| I | Sm_AgentApi_Init() の ppHandle パラメータで返されるエージェント API セッション ハンドル。 |
nServer
| I | トンネル コールの時に要求を処理するサーバ。smAgentAPI.h で定義された以下の値のいずれかです。 /* server ports */ /* authorization server */#define SM_AGENTAPI_AZ_SERVER 0 /* authentication server */#define SM_AGENTAPI_AUTH_SERVER 1 /* accounting server */#define SM_AGENTAPI_ACCT_SERVER 2 |
lpszClientIpAddr
| I | (オプション)ユーザのログイン元のクライアントの IP アドレス。 |
lpszTransactionId
| I | (オプション)エージェントがセキュリティ アクティビティをアプリケーション アクティビティに関連付けるために使用する IDです。ポリシー サーバはこの ID をログ記録します。 |
pResourceContext
| I | リソース定義構造体。 |
pServiceRequest
| I | サービス要求定義構造体。 |
pRespNumAttributes
| O | ppRespAttributes 内の属性の数。 |
ppRespAttributes
| O | レスポンス属性定義構造体の配列へのポインタ。属性識別子 SM_AGENTAPI_ATTR_SERVICE_DATA は、レスポンス構造体にリモート サービスによって返されたデータが含まれることを示します。属性識別子 SM_AGENTAPI_ATTR_STATUS_MESSAGE には、リモート サービスからのステータス メッセージが含まれています。 |
戻り値
- SM_AGENTAPI_YES。操作は成功しました。
- SM_AGENTAPI_NO。操作が失敗しました。
- SM_AGENTAPI_NOCONNECTION。初期化できませんでした。
- SM_AGENTAPI_FAILURE。サーバにアクセスできませんでした。
- SM_AGENTAPI_TIMEOUT。関数がタイム アウトしました。
例
Sm_AgentApi_Tunnel() の例を次に示します。
<install_path>\sdk\samples\smtunnelagent\smtunnelexample.cpp