| Interstage Application Server Smart Repository運用ガイド | 
| 目次
			索引    | 
| 第6章 アプリケーションの作成(C API) | > 6.2 関数インタフェース | > 6.2.6 エントリの検索 | 
この関数は、非同期型のエントリ検索処理を行います。この関数では、コントロールを指定することができます。
【指定形式】
| int  ldap_search_ext(
        LDAP  *ld,
        char  *base,
        int  scope,
        char  *filter,
        char  *attrs[],
        int  attrsonly,
        LDAPControl  *serverctrls[],
        LDAPControl  *clientctrls[],
        struct timeval  *timeout,
        int  sizelimit,
        int  *msgidp
        ); | 
【パラメタの説明】
ldap_init()またはldapssl_init()で通知された、セションハンドルを指定します。
サーチベースのDNのアドレスを指定します。サーチベースとは、検索開始位置のエントリです。
以下のどれか一つの値を指定します。
検索フィルタのアドレスを指定します。
例
| (cn=User1) (o=Fujitsu*) (&(objectClass=person)(|(uid=0001)(cn=User*))) | 
通知してほしい属性名のアドレスを設定した、ポインタ配列のアドレスを指定します。リポジトリサーバは、ポインタ配列で指定された属性だけをクライアントに通知します。以下の例では、“objectClass”と“commonName”だけが通知されます。
例
| char  *attrs[3] = {
            "objectClass",
            "commonName",
            NULL
            }; | 
このパラメタにNULLを指定すると、検索でヒットしたエントリの利用可能な属性がすべて通知されます。また、ポインタ配列の最後には、NULLを設定しておく必要があります。
以下のどちらかの値を指定します。
Smart Repositoryではサーバコントロールをサポートしていないため、このパラメタにはNULLを指定します。
本ライブラリではクライアントコントロールをサポートしていないため、このパラメタにはNULLを指定します。
 サーバにおける検索のタイムアウト値を設定したtimeval構造体のアドレスを指定します。
 timeval構造体のメンバには、以下の値を設定します。
timeoutパラメタにNULLポインタを指定すると、LDAP_OPT_TIMELIMITで設定された制限時間を使用します。この値は、リポジトリサーバでの最大検索時間として使用されます。
受信可能な最大エントリ数を指定します。sizelimitパラメタに0を指定すると、LDAP_OPT_SIZELIMITで設定された最大エントリ数を使用します。
メッセージIDを格納するための変数のアドレスを指定します。
【復帰値】
この関数では、復帰値としてLDAPエラーコードを返します。
正常完了の場合、msgidpが示す変数にメッセージIDが設定されます。
【注意事項】
非同期型検索の処理結果を受け取る場合、ldap_result()を使用します。この時、ldap_search_ext()の復帰値として返されたメッセージIDを指定します。詳細は、“処理結果の受取り/判定”を参照してください。
検索フィルタの文法については、“検索フィルタ”を参照してください。
検索がどのように行われるかは、以下に示すセションハンドルオプションによって制御されます。
セションハンドルオプションについては、“セションハンドルオプションの設定/参照”を参照してください。
LDAPエラーコードの値については、“LDAPエラーコード”を参照してください。
ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。
| 目次
			索引    |