InfoDirectory使用手引書 |
目次 索引 |
第3部 SDK編 | > 第5章 アプリケーション開発環境(LDAP C API) | > 5.2 関数インタフェース | > 5.2.6 エントリの検索 |
この関数は、時間制限なしで同期型のエントリ検索処理を行います。【指定形式】
int ldap_search_s(
LDAP *ld,
char *base,
int scope,
char *filter,
char attrs[],
int attrsonly,
LDAPMessage **res
);【パラメタの説明】
- ld
ldap_init()またはldapssl_init()で通知された、セションハンドルを指定します。
- base
サーチベースのDNのアドレスを指定します。サーチベースとは、検索開始位置のエントリです。
- scope
以下のいずれかの値を指定します。
- LDAP_SCOPE_BASE : サーチベースで指定されたエントリを検索します。
- LDAP_SCOPE_ONELEVEL : サーチベースで指定されたエントリの1階層下のエントリを検索します。
- LDAP_SCOPE_SUBTREE : サーチベースで指定されたエントリと、その配下の全エントリの中から検索します。
- filter
検索フィルタのアドレスを指定します。
例
(cn=User1) (!(cn=User1)) (o=Fujitsu*) (&(objectClass=person)(|(uid=0001)(cn=User*)))- attrs
通知してほしい属性名のアドレスを設定した、ポインタ配列のアドレスを指定します。InfoDirectoryサーバは、ポインタ配列で指定された属性だけをクライアントに通知します。以下の例では、“objectClass”と“commonName”だけが通知されます。
例
char *attrs[3] = {
"objectClass",
"commonName",
0
};このパラメタにNULLを指定すると、検索でヒットしたエントリの利用可能な属性がすべて通知されます。また、ポインタ配列の最後には、0を設定しておく必要があります。
- attrsonly
以下のいずれかの値を指定します。
- 属性名と属性値の両方を通知してほしい場合 : 0
- 属性名だけを通知してほしい場合 : 0以外の値
- res
result情報のアドレスを格納するための、“LDAPMessage *”型のポインタ変数のアドレスを指定します。このポインタ変数は、関数を呼出す前に初期値としてNULLを設定しておく必要があります。
【復帰値】
この関数では、復帰値としてLDAPエラーコードを返します。
- 正常完了の場合 : LDAP_SUCCESS
- 異常完了の場合 : LDAP_SUCCESS 以外のLDAPエラーコード
サーバから通知されたresult情報がある場合には、resパラメタで指定されたポインタ変数にresult情報のアドレスが設定されています。
【注意事項】
- 検索フィルタ
検索フィルタの文法については、検索フィルタを参照してください。
- 検索のオプション
検索がどのように行われるかは、以下に示すセションハンドルオプションによって制御されます。
- LDAP_OPT_DEREF : 別名の参照方法
- LDAP_OPT_SIZELIMIT : 受信可能な最大エントリ数
- LDAP_OPT_TIMELIMIT : 最大検索時間(秒単位)
セションハンドルオプションについては、セションハンドルオプションの設定/参照を参照してください。
- LDAPエラーコード
LDAPエラーコードの値については、LDAPエラーコードを参照してください。
- 受取った処理結果の解析
通知された検索結果の解析は、構文解析関数を使用して行います。詳細は、検索結果の解析処理を参照してください。
- 通知された領域の解放
resパラメタで通知されたresult情報と検索結果は、不要になった時点でldap_msgfree()を使用して解放しなければなりません。詳細は、動的メモリの解放を参照してください。
目次 索引 |