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