Interstage Application Server リファレンスマニュアル(API編)
目次 索引 前ページ次ページ

第1章 C言語インタフェース> 1.20 Smart Repositoryインタフェース> 1.20.4 エントリの検索インタフェース

1.20.4.5 ldap_search_ext_s()

名前

 ldap_search_ext_s

形式

 #include "idldap.h"
 int  ldap_search_ext_s(
         LDAP  *ld,
         const char  *base,
         int  scope,
         const char  *filter,
         char  **attrs,
         int  attrsonly,
         LDAPControl  **serverctrls,
         LDAPControl  **clientctrls, 
         struct timeval  *timeout,
         int  sizelimit,
         LDAPMessage  **res );

機能説明

 この関数は、同期型のエントリ検索処理をします。

 検索がどのように行われるかは、以下に示すセションハンドルオプションによって制御されます。

 セションハンドルオプションについては、“セションハンドルオプションの設定/参照”を参照してください。

 通知された検索結果の解析は、構文解析関数を使用して行います。詳細は、“検索結果の解析処理インタフェース”を参照してください。

 ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。

パラメタ

 ld
 ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。
 base
 サーチベースのDNのアドレスを指定します。サーチベースとは、検索開始位置のエントリです。
 scope
 以下のどれか1つの値を指定します。
 filter
 検索フィルタのアドレスを指定します。NULLを指定した場合は、"(objectClass=*)"とみなします。検索フィルタの文法については、“Smart Repository運用ガイド”の“検索フィルタ”を参照してください。
 例
(cn=User1)
(o=Fujitsu*)
(&(objectClass=person)(|(uid=0001)(cn=User*)))

 attrs
 通知してほしい属性名のアドレスを設定した、ポインタ配列のアドレスを指定します。リポジトリサーバは、ポインタ配列で指定された属性だけをクライアントに通知します。以下の例では、“objectClass”と“commonName”だけが通知されます。
 例
char  *attrs[3] = {
            "objectClass",
            "commonName",
            NULL
            };
 DN名のみを通知したい場合は、attrsパラメタの配列先頭にLDAP_NO_ATTRSを設定してください。
 例
char  *attrs[2] = {
            LDAP_NO_ATTRS,
            NULL
            };
 このパラメタにNULLを指定すると、検索でヒットしたエントリの利用可能な属性がすべて通知されます。また、ポインタ配列の最後には、NULLを設定しておく必要があります。
 attrsonly
 以下のどちらかの値を指定します。
 serverctrls
 Smart Repositoryではサーバコントロールをサポートしていないため、このパラメタにはNULLを指定します。
 clientctrls
 本ライブラリではクライアントコントロールをサポートしていないため、このパラメタにはNULLを指定します。
 timeout
 検索のローカルタイムアウト値を設定した、timeval構造体のアドレスを指定します。
 timeval構造体のメンバには、以下の値を設定します。
 timeval構造体のtv_sec、tv_usecの両方に“0”を指定することはできません。
 timeoutパラメタにNULLポインタを指定すると、セションハンドルオプション(LDAP_OPT_TIMELIMIT)の設定値を使用します。この値は、クライアントでリポジトリサーバからの検索結果を受信するための最大待ち時間として使用されます。timeoutパラメタとセションハンドルオプション (LDAP_OPT_TIMELIMIT)の関係は以下のようになります。

timeoutパラメタ指定値

セションハンドルオプション(LDAP_OPT_TIMELIMIT) の指定値

有効となる指定値

NULL

LDAP_NO_LIMIT(初期値)

セションハンドルオプションの指定値(無制限)

タイマー指定

セションハンドルオプションの指定値

タイマー指定

LDAP_NO_LIMIT(初期値)

timeoutパラメタの指定値

タイマー指定

timeoutパラメタの指定値

 sizelimit
 受信可能な最大エントリ数を指定します。検索結果を制限しない場合は、LDAP_NO_LIMITを指定してください。また、 LDAP_DEFAULT_SIZELIMITを指定すると、セションハンドルオプション(LDAP_OPT_SIZELIMIT)の設定値を使用します。sizelimitパラメタとセションハンドルオプション(LDAP_OPT_SIZELIMIT)の関係は以下のようになります。

sizelimitパラメタ指定値

セションハンドルオプション(LDAP_OPT_SIZELIMIT) の指定値

有効となる指定値

LDAP_NO_LIMIT

LDAP_NO_LIMIT(初期値)

sizelimitパラメタの指定値(無制限)

サイズ指定

sizelimitパラメタの指定値(無制限)

エントリ数

LDAP_NO_LIMIT(初期値)

sizelimitパラメタの指定値

サイズ指定

sizelimitパラメタの指定値

LDAP_DEFAULT_SIZELIMIT

LDAP_NO_LIMIT(初期値)

セションハンドルオプションの指定値(無制限)

サイズ指定

セションハンドルオプションの指定値

 res
 result情報のアドレスを格納するための “LDAPMessage *”型のポインタ変数のアドレスを指定します。

復帰値

 この関数では、復帰値としてLDAPエラーコードを返します。LDAPエラーコードの値については、“メッセージ集”の“LDAPエラーコード”を参照してください。

 サーバから通知されたresult情報がある場合には、resパラメタで指定されたポインタ変数にresult情報のアドレスが設定されています。

注意事項


目次 索引 前ページ次ページ

Copyright 2007 FUJITSU LIMITED