セションのオープン
セションをオープンするには、以下の関数を使用します。
LDAP *ldap_init( const char *hostname, int portno )
SSL通信を使用しないでセションを初期化してオープンします。
LDAP *ldapssl_init( const char *hostname, int portno, SSLENV *sslenv )
SSL通信を使用してセションを初期化してオープンします。
これらの関数は、セションを識別するためのセションハンドルを返します。
オープンした1つのセションを、複数のスレッドで共有することはできません。複数のスレッドを持つアプリケーションで使用する場合は、“アプリケーション作成の前に”の“複数のスレッドがInterstageディレクトリサービスと通信する場合”を参照してください。
SSL通信を使用しない
ldap_init()でセションハンドルをオープンします。
以下に、使用例を示します。
LDAP *ld;
/* セションのオープン */
ld = ldap_init( "hostname", 389 );
if ( ld == NULL ) {
/* エラー発生時の処理をする */
return -1;
}SSL通信を使用する
クライアントAPIライブラリでは、SSLを使用してInterstage ディレクトリサービスと安全な通信を行うことができます。
SSLプロトコルを使用する場合は、ldap_init()の代わりにldapssl_init()でセションをオープンします。
SSLプロトコルを使用するためには、SSL環境をクライアントに構築し、SSL通信を行うサーバに対応したSSL情報を設定する必要があります。
SSL通信環境構築の詳細な手順については、“SSL通信環境の構築(クライアント・サーバ間)”を参照してください。
以下に、使用例を示します。
LDAP *ld;
SSLENV sslenv
memset( sslenv, 0x00, sizeof(SSLENV) );
sslenv->ssl_version = 3;
sslenv->crypt = "RSA-3DES-SHA:RSA-DES-SHA";
sslenv->tkn_lbl = "Token01";
sslenv->tkn_pwd = "userpin";
sslenv->slot_path = "/sslenv/slot";
sslenv->cert_path = (unsigned char *)"/sslenv/sslcert";
/* SSLを使用したセションのオープン */
ld = ldapssl_init( "hostname", 636, &sslenv );
if ( ld == NULL ) {
/* エラー発生時の処理をする */
return -1;
} sslenvには、SSLの動作環境の情報を設定したSSLENV構造体のアドレスを指定します。
ldapssl_init()でSSLライブラリでエラーが発生した場合は、sslenv構造体のssl_err、およびssl_err_detailメンバにエラーコードが設定されます。また、ldapssl_init()以降の関数で発生したSSLライブラリのエラーコードを参照するには、ldapssl_error()を使用します。
セションの初期設定
クライアントは、該当するセションごとの動作環境を、セションハンドルオプションとして設定・参照できます。
セションハンドルオプションの設定、参照をするには、以下の関数を使用します。
ldap_set_option( LDAP *ld, int option, const void *optdata )
セションハンドルオプションを設定します。
ldap_get_option( LDAP *ld, int option, const void *optdata )
セションハンドルオプションの値を参照します。
以下の項目を設定、参照できます。
検索結果の最大エントリ数
検索結果の最大待ち時間
割込み発生時の動作
LDAPプロトコルバージョン
デフォルトの接続先リポジトリのホスト名、ポート番号
最新のLDAPエラー番号
最新のLDAPエラーメッセージ
接続応答の最大待ち時間
Windows Sockets DLLの初期化および終了処理![]()
LDAPプロトコルバージョンを指定する
LDAPプロトコルのバージョンを指定しない場合、LDAP V2プロトコルが使用されます。Interstage ディレクトリサービスでは、LDAP V2プロトコルをサポートしていないため、セションハンドルオプションを使って、必ずLDAP V3プロトコルを指定してください。
/* オプションの設定 ( LDAP_VERSION3 ) */ optdata = LDAP_VERSION3; rtn = ldap_set_option( ld, LDAP_OPT_PROTOCOL_VERSION, (void *)(&optdata) );
関数、およびセションハンドルオプションの値について詳しくは、“リファレンスマニュアル(API編)”の“セションのオープンとクローズインタフェース”、および“セションハンドルオプションの設定/参照インタフェース”を参照してください。