関数名 | 関数の説明 |
---|---|
指定された条件のエントリを検索します。 | |
指定された条件のエントリを検索します。 | |
指定された条件のエントリを検索します。 | |
指定された条件のエントリを検索します。 | |
指定された条件のエントリを検索します。 |
クライアントからアクセスするDN(バインドDN)と、サーバ側の検索可能最大エントリ数、検索タイムアウト時間の設定値により、検索可能最大エントリ数と検索タイムアウト時間の値が有効にならない場合があります。
検索可能最大エントリ数、および検索タイムアウト時間は、Interstage ディレクトリサービスのサーバ側と、クライアント側とでそれぞれ指定できます。
Interstage ディレクトリサービスのサーバ側の指定とクライアント側の指定との関係を下表に示します。
クライアントから | クライアント | サーバ指定値と | 有効となる指定 |
---|---|---|---|
管理者用DN | あり | サーバ>クライアント | クライアント指定値 |
あり | サーバ≦クライアント | クライアント指定値 | |
制限しない | - | クライアント指定値 | |
その他 | あり | サーバ>クライアント | クライアント指定値 |
あり | サーバ≦クライアント | サーバ指定値 | |
制限しない | - | サーバ指定値 |
名前
ldap_search
形式
#include "idldap.h" int ldap_search( LDAP *ld, const char *base, int scope, const char *filter, char **attrs, int attrsonly );
機能説明
この関数は、非同期型のエントリ検索処理をします。
非同期型検索の処理結果を受け取る場合、ldap_result()を使用します。この時、ldap_search()の復帰値として返されたメッセージIDを指定します。詳細は、“処理結果の受取り/判定”を参照してください。
検索がどのようにされるかは、以下に示すセションハンドルオプションによって制御されます。
LDAP_OPT_SIZELIMIT : 受信できる最大エントリ数
LDAP_OPT_TIMELIMIT : 最大検索時間(秒単位)
セションハンドルオプションについては、“セションハンドルオプションの設定/参照”を参照してください。
ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。
パラメタ
ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。
サーチベースのDNのアドレスを指定します。サーチベースとは、検索開始位置のエントリです。
以下のどれか1つの値を指定します。
LDAP_SCOPE_BASE:サーチベースで指定されたエントリを検索します。
LDAP_SCOPE_ONELEVEL:サーチベースで指定されたエントリの1階層下のエントリを検索します。
LDAP_SCOPE_SUBTREE:サーチベースで指定されたエントリと、その配下の全エントリの中から検索します。
検索フィルタのアドレスを指定します。NULLを指定した場合は、"(objectClass=*)"とみなします。検索フィルタの文法については、“ディレクトリサービス運用ガイド”の“エントリの管理”-“コマンドを使用する”-“検索フィルタ”を参照してください。
例
(cn=User1) (o=Fujitsu*) (&(objectClass=person)(|(uid=0001)(cn=User*))) |
通知してほしい属性名のアドレスを設定した、ポインタ配列のアドレスを指定します。リポジトリサーバは、ポインタ配列で指定された属性だけをクライアントに通知します。以下の例では、“objectClass”と“commonName”だけが通知されます。
例
char *attrs[3] = { "objectClass", "commonName", NULL }; |
DN名のみを通知したい場合は、attrsパラメタの配列先頭にLDAP_NO_ATTRSを設定してください。
例
char *attrs[2] = { LDAP_NO_ATTRS, NULL }; |
このパラメタにNULLを指定すると、検索でヒットしたエントリの利用できる属性がすべて通知されます。また、ポインタ配列の最後には、NULLを設定しておく必要があります。
以下のどちらかの値を指定します。
属性名と属性値の両方を通知してほしい場合 : 0
属性名だけを通知してほしい場合 : 0以外の値
復帰値
この関数は、復帰値として以下の値を返します。
正常終了の場合 : メッセージID
異常終了の場合 : -1
異常終了の場合のエラー原因は、ldap_get_option()のLDAP_OPT_RESULT_CODEオプションで参照してください。
名前
ldap_search_s
形式
#include "idldap.h" int ldap_search_s( LDAP *ld, const char *base, int scope, const char *filter, char **attrs, int attrsonly, LDAPMessage **res );
機能説明
この関数は、時間制限なしで同期型のエントリ検索処理をします。
検索がどのようにされるかは、以下に示すセションハンドルオプションによって制御されます。
LDAP_OPT_SIZELIMIT : 受信できる最大エントリ数
LDAP_OPT_TIMELIMIT : 最大検索時間(秒単位)
セションハンドルオプションについては、“セションハンドルオプションの設定/参照”を参照してください。
通知された検索結果の解析は、構文解析関数を使用します。詳細は、“1.20.12 検索結果の解析処理インタフェース”を参照してください。
ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。
パラメタ
ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。
サーチベースのDNのアドレスを指定します。サーチベースとは、検索開始位置のエントリです。
以下のどれか1つの値を指定します。
LDAP_SCOPE_BASE:サーチベースで指定されたエントリを検索します。
LDAP_SCOPE_ONELEVEL:サーチベースで指定されたエントリの1階層下のエントリを検索します。
LDAP_SCOPE_SUBTREE:サーチベースで指定されたエントリと、その配下の全エントリの中から検索します。
検索フィルタのアドレスを指定します。NULLを指定した場合は、"(objectClass=*)"とみなします。検索フィルタの文法については、“ディレクトリサービス運用ガイド”の“エントリの管理”-“コマンドを使用する”-“検索フィルタ”を参照してください。
例
(cn=User1) (o=Fujitsu*) (&(objectClass=person)(|(uid=0001)(cn=User*))) |
通知してほしい属性名のアドレスを設定した、ポインタ配列のアドレスを指定します。リポジトリサーバは、ポインタ配列で指定された属性だけをクライアントに通知します。以下の例では、“objectClass”と“commonName”だけが通知されます。
例
char *attrs[3] = { "objectClass", "commonName", NULL }; |
DN名のみを通知したい場合は、attrsパラメタの配列先頭にLDAP_NO_ATTRSを設定してください。
例
char *attrs[2] = { LDAP_NO_ATTRS, NULL }; |
このパラメタにNULLを指定すると、検索でヒットしたエントリの利用できる属性がすべて通知されます。また、ポインタ配列の最後には、NULLを設定しておく必要があります。
以下のどちらかの値を指定します。
属性名と属性値の両方を通知してほしい場合 : 0
属性名だけを通知してほしい場合 : 0以外の値
result情報のアドレスを格納するための、“LDAPMessage *”型のポインタ変数のアドレスを指定します。
復帰値
この関数では、復帰値としてLDAPエラーコードを返します。LDAPエラーコードの値については、“メッセージ集”の“LDAPエラーコード”を参照してください。
正常終了の場合 : LDAP_SUCCESS
異常終了の場合 : LDAP_SUCCESS 以外のLDAPエラーコード
サーバから通知されたresult情報がある場合には、resパラメタで指定されたポインタ変数にresult情報のアドレスが設定されています。
注意事項
通知された領域の解放
resパラメタで通知されたresult情報と検索結果は、不要になった時点でldap_msgfree()を使用して解放しなければなりません。詳細は、“1.20.13 動的メモリの解放インタフェース”を参照してください。
名前
ldap_search_st
形式
#include "idldap.h" int ldap_search_st( LDAP *ld, const char *base, int scope, const char *filter, char **attrs, int attrsonly, struct timeval *timeout, LDAPMessage **res );
機能説明
この関数は、時間制限付きで同期型のエントリ検索処理をします。
検索がどのようにされるかは、以下に示すセションハンドルオプションによって制御されます。
LDAP_OPT_SIZELIMIT : 受信できる最大エントリ数
LDAP_OPT_TIMELIMIT : 最大検索時間(秒単位)
セションハンドルオプションについては、“セションハンドルオプションの設定/参照”を参照してください。
通知された検索結果の解析は、構文解析関数を使用します。詳細は、“1.20.12 検索結果の解析処理インタフェース”を参照してください。
ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。
パラメタ
ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。
サーチベースのDNのアドレスを指定します。サーチベースとは、検索開始位置のエントリです。
以下のどれか1つの値を指定します。
LDAP_SCOPE_BASE:サーチベースで指定されたエントリを検索します。
LDAP_SCOPE_ONELEVEL:サーチベースで指定されたエントリの1階層下のエントリを検索します。
LDAP_SCOPE_SUBTREE:サーチベースで指定されたエントリと、その配下の全エントリの中から検索します。
検索フィルタのアドレスを指定します。NULLを指定した場合は、"(objectClass=*)"とみなします。検索フィルタの文法については、“ディレクトリサービス運用ガイド”の“エントリの管理”-“コマンドを使用する”-“検索フィルタ”を参照してください。
例
(cn=User1) (o=Fujitsu*) (&(objectClass=person)(|(uid=0001)(cn=User*))) |
通知してほしい属性名のアドレスを設定した、ポインタ配列のアドレスを指定します。リポジトリサーバは、ポインタ配列で指定された属性だけをクライアントに通知します。以下の例では、“objectClass”と“commonName”だけが通知されます。
例
char *attrs[3] = { "objectClass", "commonName", NULL }; |
DN名のみを通知したい場合は、attrsパラメタの配列先頭にLDAP_NO_ATTRSを設定してください。
例
char *attrs[2] = { LDAP_NO_ATTRS, NULL }; |
このパラメタにNULLを指定すると、検索条件に合致したエントリの利用できる属性がすべて通知されます。また、ポインタ配列の最後には、NULLを設定しておく必要があります。
以下のどちらかの値を指定します。
属性名と属性値の両方を通知してほしい場合 : 0
属性名だけを通知してほしい場合 : 0以外の値
検索のローカルタイムアウト値を設定した、timeval構造体のアドレスを指定します。
timeval構造体のメンバには、以下の値を設定します。
tv_sec : タイマー値(秒単位)
tv_usec : タイマー値(マイクロ秒単位)
timeval構造体のtv_sec、tv_usecの両方に“0”を指定することはできません。
この値は、クライアントでリポジトリサーバからの検索結果を受信するための最大待ち時間として使用されます。timeoutパラメタとセションハンドルオプション (LDAP_OPT_TIMELIMIT)の関係は以下のようになります。
timeoutパラメタ指定値 | セションハンドルオプション(LDAP_OPT_TIMELIMIT) の指定値 | 有効となる指定値 |
---|---|---|
NULL | LDAP_NO_LIMIT(初期値) | セションハンドルオプションの指定値(無制限) |
タイマー指定 | セションハンドルオプションの指定値 | |
タイマー指定 | LDAP_NO_LIMIT(初期値) | timeoutパラメタの指定値 |
タイマー指定 | セションハンドルオプション、timeoutパラメタのどちらか小さい指定値 |
result情報のアドレスを格納するための、“LDAPMessage *”型のポインタ変数のアドレスを指定します。
復帰値
この関数では、復帰値としてLDAPエラーコードを返します。LDAPエラーコードの値については、“メッセージ集”の“LDAPエラーコード”を参照してください。
正常終了の場合 : LDAP_SUCCESS
異常終了の場合 : LDAP_SUCCESS 以外のLDAPエラーコード
サーバから通知されたresult情報がある場合には、resパラメタで指定されたポインタ変数にresult情報のアドレスが設定されています。
注意事項
通知された領域の解放
resパラメタで通知されたresult情報と検索結果は、不要になった時点でldap_msgfree()を使用して解放しなければなりません。詳細は、“1.20.13 動的メモリの解放インタフェース”を参照してください。
名前
ldap_search_ext
形式
#include "idldap.h" int ldap_search_ext( LDAP *ld, const char *base, int scope, const char *filter, char **attrs, int attrsonly, LDAPControl **serverctrls, LDAPControl **clientctrls, struct timeval *timeout, int sizelimit, int *msgidp );
機能説明
この関数は、非同期型のエントリ検索処理をします。
非同期型検索の処理結果を受け取る場合、ldap_result()を使用します。この時、ldap_search_ext()の復帰値として返されたメッセージIDを指定します。詳細は、“処理結果の受取り/判定”を参照してください。
検索がどのようにされるかは、以下に示すセションハンドルオプションによって制御されます。
LDAP_OPT_SIZELIMIT : 受信できる最大エントリ数
LDAP_OPT_TIMELIMIT : 最大検索時間(秒単位)
セションハンドルオプションについては、“セションハンドルオプションの設定/参照”を参照してください。
通知された検索結果の解析は、構文解析関数を使用します。詳細は、“1.20.12 検索結果の解析処理インタフェース”を参照してください。
ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーをldapssl_error()で参照することができます。
パラメタ
ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。
サーチベースのDNのアドレスを指定します。サーチベースとは、検索開始位置のエントリです。
以下のどれか1つの値を指定します。
LDAP_SCOPE_BASE:サーチベースで指定されたエントリを検索します。
LDAP_SCOPE_ONELEVEL:サーチベースで指定されたエントリの1階層下のエントリを検索します。
LDAP_SCOPE_SUBTREE:サーチベースで指定されたエントリと、その配下の全エントリの中から検索します。
検索フィルタのアドレスを指定します。NULLを指定した場合は、"(objectClass=*)"とみなします。検索フィルタの文法については、“ディレクトリサービス運用ガイド”の“エントリの管理”-“コマンドを使用する”-“検索フィルタ”を参照してください。
例
(cn=User1) (o=Fujitsu*) (&(objectClass=person)(|(uid=0001)(cn=User*))) |
通知してほしい属性名のアドレスを設定した、ポインタ配列のアドレスを指定します。リポジトリサーバは、ポインタ配列で指定された属性だけをクライアントに通知します。以下の例では、“objectClass”と“commonName”だけが通知されます。
例
char *attrs[3] = { "objectClass", "commonName", NULL }; |
DN名のみを通知したい場合は、attrsパラメタの配列先頭にLDAP_NO_ATTRSを設定してください。
例
char *attrs[2] = { LDAP_NO_ATTRS, NULL }; |
このパラメタにNULLを指定すると、検索条件に合致したエントリの利用できる属性がすべて通知されます。また、ポインタ配列の最後には、NULLを設定しておく必要があります。
以下のどちらかの値を指定します。
属性名と属性値の両方を通知してほしい場合 : 0
属性名だけを通知してほしい場合 : 0以外の値
Interstage ディレクトリサービスではサーバコントロールをサポートしていないため、このパラメタにはNULLを指定します。
本ライブラリではクライアントコントロールをサポートしていないため、このパラメタにはNULLを指定します。
検索のローカルタイムアウト値を設定した、timeval構造体のアドレスを指定します。
timeval構造体のメンバには、以下の値を設定します。
tv_sec : タイマー値(秒単位)
tv_usec : タイマー値(マイクロ秒単位)
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パラメタの指定値 |
受信できる最大エントリ数を指定します。検索結果を制限しない場合は、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(初期値) | セションハンドルオプションの指定値(無制限) |
サイズ指定 | セションハンドルオプションの指定値 |
メッセージIDを格納するための変数のアドレスを指定します。
復帰値
この関数では、復帰値としてLDAPエラーコードを返します。LDAPエラーコードの値については、“メッセージ集”の“LDAPエラーコード”を参照してください。
正常終了の場合 : LDAP_SUCCESS
異常終了の場合 : LDAP_SUCCESS 以外のLDAPエラーコード
正常終了の場合、msgidpが示す変数にメッセージIDが設定されます。
名前
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 );
機能説明
この関数は、同期型のエントリ検索処理をします。
検索がどのようにされるかは、以下に示すセションハンドルオプションによって制御されます。
LDAP_OPT_SIZELIMIT : 受信できる最大エントリ数
LDAP_OPT_TIMELIMIT : 最大検索時間(秒単位)
セションハンドルオプションについては、“セションハンドルオプションの設定/参照”を参照してください。
通知された検索結果の解析は、構文解析関数を使用します。詳細は、“1.20.12 検索結果の解析処理インタフェース”を参照してください。
ldapssl_init()で獲得したセションハンドルを使用している場合、SSLライブラリで発生したエラーを1.20.11.6 ldapssl_error()で参照することができます。
パラメタ
ldap_init()、またはldapssl_init()で通知された、セションハンドルを指定します。
サーチベースのDNのアドレスを指定します。サーチベースとは、検索開始位置のエントリです。
以下のどれか1つの値を指定します。
LDAP_SCOPE_BASE:サーチベースで指定されたエントリを検索します。
LDAP_SCOPE_ONELEVEL:サーチベースで指定されたエントリの1階層下のエントリを検索します。
LDAP_SCOPE_SUBTREE:サーチベースで指定されたエントリと、その配下の全エントリの中から検索します。
検索フィルタのアドレスを指定します。NULLを指定した場合は、"(objectClass=*)"とみなします。検索フィルタの文法については、“ディレクトリサービス運用ガイド”の“エントリの管理”-“コマンドを使用する”-“検索フィルタ”を参照してください。
例
(cn=User1) (o=Fujitsu*) (&(objectClass=person)(|(uid=0001)(cn=User*))) |
通知してほしい属性名のアドレスを設定した、ポインタ配列のアドレスを指定します。リポジトリサーバは、ポインタ配列で指定された属性だけをクライアントに通知します。以下の例では、“objectClass”と“commonName”だけが通知されます。
例
char *attrs[3] = { "objectClass", "commonName", NULL }; |
DN名のみを通知したい場合は、attrsパラメタの配列先頭にLDAP_NO_ATTRSを設定してください。
例
char *attrs[2] = { LDAP_NO_ATTRS, NULL }; |
このパラメタにNULLを指定すると、検索条件に合致したエントリの利用できる属性がすべて通知されます。また、ポインタ配列の最後には、NULLを設定しておく必要があります。
以下のどちらかの値を指定します。
属性名と属性値の両方を通知してほしい場合 : 0
属性名だけを通知してほしい場合 : 0以外の値
Interstage ディレクトリサービスではサーバコントロールをサポートしていないため、このパラメタにはNULLを指定します。
本ライブラリではクライアントコントロールをサポートしていないため、このパラメタにはNULLを指定します。
検索のローカルタイムアウト値を設定した、timeval構造体のアドレスを指定します。
timeval構造体のメンバには、以下の値を設定します。
tv_sec : タイマー値(秒単位)
tv_usec : タイマー値(マイクロ秒単位)
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パラメタの指定値 |
受信できる最大エントリ数を指定します。検索結果を制限しない場合は、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(初期値) | セションハンドルオプションの指定値(無制限) |
サイズ指定 | セションハンドルオプションの指定値 |
result情報のアドレスを格納するための “LDAPMessage *”型のポインタ変数のアドレスを指定します。
復帰値
この関数では、復帰値としてLDAPエラーコードを返します。LDAPエラーコードの値については、“メッセージ集”の“LDAPエラーコード”を参照してください。
正常終了の場合 : LDAP_SUCCESS
異常終了の場合 : LDAP_SUCCESS 以外のLDAPエラーコード
サーバから通知されたresult情報がある場合には、resパラメタで指定されたポインタ変数にresult情報のアドレスが設定されています。
注意事項
通知された領域の解放
resパラメタで通知されたresult情報と検索結果は、不要になった時点でldap_msgfree()を使用して解放しなければなりません。詳細は、“1.20.13 動的メモリの解放インタフェース”を参照してください。