セションのオープン
セションをオープンするには、以下の関数を使用します。
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編)”の“セションのオープンとクローズインタフェース”、および“セションハンドルオプションの設定/参照インタフェース”を参照してください。