ソケット関連ユーザー出口ポイント

ソケット関連ユーザー出口ポイントは、出口プログラムによって特定のソケット API の正常終了を防止できるようにします。

ソケット関連ユーザー出口ポイントは、出口プログラムが実行時にジョブに固有の条件に基づいて接続を制御できるようにします。 この機能は、システム共通ユーザー出口ポイントを通じて、着信接続を受け入れるソケット API である connect() および listen() に提供されます。 ユーザー出口は、登録済み出口プログラムによって設定された基準に基づいて操作の正常終了を許可したり拒否したりすることができます。 ユーザー出口の目的は、要求ジョブの特性に基づいて特定の操作を完了できるようになっている場合に出口プログラムの実行時判別を許可することにあります。 このような特性としては、ユーザー ID、ジョブ・タイプ、時刻、現行システム使用状況などあります。

ユーザー・レジストリーで定義される出口ポイント

ユーザー・レジストリーで定義された出口ポイントに登録されているユーザー定義出口プログラムは、着信接続と発信接続を制限することができます。 ユーザー定義出口プログラムの戻りコードが、正常終了を許可するかどうかを connect()listen()accept()accept_and_recv()、または QsoStartAccept() に示します。

表 1. ソケット関連ユーザー出口ポイント
ユーザー出口ポイント 説明
QIBM_QSO_ACCEPT プログラムによって設定された制限に基づいてカスタム出口プログラムが着信接続を許可または拒否できるようにします。
QIBM_QSO_CONNECT プログラムによって設定された制限に基づいてカスタム出口プログラムが発信接続を許可または拒否できるようにします。
QIBM_QSO_LISTEN プログラムによって設定された制限に基づいてカスタム出口プログラムがソケットに対して接続を listen する能力を許可または拒否できるようにします。
注:
  1. デフォルトでは、接続を受け入れるソケット API は、拒否された接続を自動的に無視して、次の着信接続を待ちます。 拒否された接続をアプリケーションに通知できるようにするためのソケット・オプションがあります。 このソケット・オプションは、レベル SOL_SOCKET とオプション名 SO_ACCEPTEPERM を指定した setsockopt() によって使用可能になります。 ソケット・オプションが使用可能になっていると、接続を受け入れるソケット API は、QIBM_QSO_ACCEPT に登録されたユーザー出口プログラムが着信接続を拒否するたびに EPERM で失敗します。
  2. ソケット関連ユーザー出口プログラムを追加したり除去したりする場合には、*IOSYSCFG、 *ALLOBJ、および *SECADM 権限が必要となります。
  3. すべての IBM® 開発アプリケーションが、以下のいずれかの理由で構成済みのユーザー出口プログラムを呼び出すわけではありません。
    • アプリケーションがネットワーク通信にソケット API を使用しない。
    • ソケット API が、ユーザー出口プログラムを呼び出せないシステム・タスクから呼び出された。