LDAP_SEARCH

Section: C Library Functions (3)
Updated: 25 July 1999
Index Return to Main Contents
 

書式

ldap_search, ldap_search_s, ldap_search_st - LDAP 検索操作の実行  

書式

#include <sys/time.h> /* for struct timeval definition */
#include <ldap.h>

int ldap_search(ld, base, scope, filter, attrs, attrsonly)
LDAP *ld;
char *base;
int scope;
char *filter, *attrs[];
int attrsonly;

int ldap_search_s(ld, base, scope, filter, attrs, attrsonly, res)
LDAP *ld;
char *base;
int scope;
char *filter, *attrs[]
int attrsonly;
LDAPMessage **res;

int ldap_search_st(ld, base, scope, filter, attrs, attrsonly, timeout, res)
LDAP *ld;
char *base;
int scope;
char *filter, *attrs[]
int attrsonly;
struct timeval *timeout;
LDAPMessage **res;
 

説明

これらのルーチンは、LDAP 検索操作を行うために使われます。 ldap_search_s() は、同期検索を行います(すなわち、操作が終了するまで戻りません)。 ldap_search_st() も同様ですが、タイムアウト時間 timeout を指定できます。 ldap_search() は、非同期バージョンです。これは検索を起動して、その起動した操作の メッセージ ID を返します。 引数 base には、検索を開始するエントリの DN を指定します。 引数 scope は検索スコープです。base に指定した オブジェクト自体を検索するには LDAP_SCOPE_BASE を指定し、 base の直下にあるオブジェクトから検索するには LDAP_SCOPE_ONELEVEL を指定し、base に指定したオブジェクトとその配下のものすべてから 検索するには LDAP_SCOPE_SUBTREE を指定します。

引数 filter は、検索に適用するフィルタを表現する文字列です。 単純なフィルタは attributetype=attributevalue のように指定 できます。より複雑なフィルタは、次の BNF にしたがった前置記法を 用いて指定します。

        <filter> ::= '(' <filtercomp> ')'
        <filtercomp> ::= <and> | <or> | <not> | <simple>
        <and> ::= '&' <filterlist>
        <or> ::= '|' <filterlist>
        <not> ::= '!' <filter>
        <filterlist> ::= <filter> | <filter> <filterlist>
        <simple> ::= <attributetype> <filtertype> <attributevalue>
        <filtertype> ::= '=' | '~=' | '<=' | '>='

構文要素 '~=' は、近似一致を指定するために使われます。 <attributetype> と <attributevalue> の記述方法は RFC 1778 に 説明されています。さらに <attributevalue> には属性の存在テスト のために単一の * を指定することもできますし、部分文字列一致 を行うためにテキストと * を組み合わせて指定することもできます。

たとえば、フィルタ "mail=*" は属性 mail を持つエントリを探します。 フィルタ "mail=*@terminator.rs.itd.umich.edu" は属性 mail が指定 の文字列で終っているエントリを探します。フィルタ中に括弧を置くには、 それをバックスラッシュ文字 '\' でエスケープしてください。 指定可能なフィルタについてより完全な説明は RFC 2254 を参照して ください。検索フィルタを自動的に構築するのを支援するルーチン ldap_getfilter(3) も参照してください。

引数 attrs は、filter に一致するエントリから返す属性型を 指定する配列です。配列の終りは NULL の要素で示します。 引数 attrs が NULL の場合にはすべての属性が返されます。 文字 "*" (LDAP_ALL_USER_ATTRIBUTES) は、すべてのユーザ属性を返すよう 要求するために使います。 文字 "+" (LDAP_ALL_OPERATIONAL_ATTRIBUTES) は、すべての運用属性を返すよう 要求するために使います。 属性を何も要求しないためには "1.1" (LDAP_NO_ATTRS)を指定します。

属性型だけが欲しい場合には引数 attrsonly に 1 を設定します。 属性型と属性値の両方を欲しい 場合には引数 attrsonly に 0 を指定します。  

エラー

ldap_search_s()ldap_search_st() は、検索操作の結果を示す LDAP エラーコードを返します。 詳しくは ldap_error(3) を参照してください。 ldap_search() は障害のある場合に -1 を返します。  

注記

読取り(read)と一覧(list)の両機能が、これらのルーチンによって実現される ことに注意してください。これには、"objectclass=*" のようなフィルタ とスコープ LDAP_SCOPE_BASE (読取りをエミュレート)または LDAP_SCOPE_ONELEVEL (一覧をエミュレート)を使います。

これらのルーチンは動的にメモリを確保します。 そのようなメモリを提供されている解放ルーチンを使って解放するのは 呼び出した側の責任です。戻り値については <ldap.h> に記述があります。  

関連項目

ldap(3), ldap_result(3), ldap_getfilter(3), ldap_error(3)  

謝辞

OpenLDAP は OpenLDAP プロジェクト (http://www.openldap.org/ )が開発/管理しています。 OpenLDAP はミシガン大学の LDAP 3.3 リリースより派生しました。  

翻訳者

稲地 稔


 

Index

書式
書式
説明
エラー
注記
関連項目
謝辞
翻訳者

This document was created by man2html, using the manual pages.
Time: 09:00:30 GMT, February 05, 2001