InfoDirectory使用手引書 |
目次 索引 |
第3部 SDK編 | > 第5章 アプリケーション開発環境(LDAP C API) | > 5.2 関数インタフェース | > 5.2.14 処理結果の受取り/判定 |
この関数は、非同期関数の処理結果や検索結果のエントリを受取ります。【指定形式】
int ldap_result(
LDAP *ld,
int msgid,
int all,
struct timeval *timeout,
LDAPMessage **resp
);【パラメタの説明】
- ld
ldap_init()またはldapssl_init()で通知された、セションハンドルを指定します。
- msgid
非同期関数で通知されたメッセージIDを指定します。また、受取る処理結果を特定しない場合には、LDAP_RES_ANYを指定します。LDAP_RES_ANYを指定した場合は、最初に受信したメッセージが通知されます。
- all
処理結果のメッセージが複数ある場合の処理として、以下のいずれかを指定します。
- LDAP_MSG_ALL : 要求したmsgidパラメタに対応する処理結果メッセージをすべて受信した後で、呼出し元に復帰します。
- LDAP_MSG_ONE : 要求したmsgidパラメタに対応する処理結果メッセージを1個受信するごとに、呼出し元へ復帰します。
- LDAP_MSG_RECEIVED : 現在受信済の処理結果メッセージの中から、msgidパラメタで指定された条件に合うものを読込んで呼出し元へ復帰します。
- timeout
受信待ち時間を設定した領域のアドレスを指定します。timeval構造体のメンバには、以下の値を設定します。
- tv_sec : タイマ値(秒単位)
- tv_usec : タイマ値(マイクロ秒単位)
timeoutパラメタにNULLポインタを指定すると、結果を受取るまで呼出し元に復帰しません。また、timeval構造体のtv_secパラメタおよびtv_usecパラメタに0を設定した場合は、指定されたメッセージが到着しているかどうかの判定を行い、メッセージが到着していなかった場合には、すぐにタイムアウトで復帰します。この受信待ち時間は、本ライブラリでのselectに使用される時間になります。
- resp
LDAPMessage構造体のポインタ変数のアドレスを指定します。respパラメタが示すポインタ変数は、NULLで初期化しておく必要があります。
【復帰値】
この関数は、復帰値として以下に示す値を返します。
- 正常完了 : メッセージのタイプ(メッセージリストの先頭)
- タイムアウト : 0
- エラー : -1
通知されるメッセージのタイプを、以下に示します。
表: メッセージタイプの一覧
メッセージタイプ
説明
LDAP_RES_BIND
ldap_simple_bind()またはldap_sasl_bind()に対するresult情報です。
LDAP_RES_SEARCH_RESULT
ldap_search()またはldap_search_ext()に対するresult情報です。
LDAP_RES_MODIFY
ldap_modify()またはldap_modify_ext()に対するresult情報です。
LDAP_RES_ADD
ldap_add()またはldap_add_ext()に対するresult情報です。
LDAP_RES_DELETE
ldap_delete()またはldap_delete_ext()に対するresult情報です。
LDAP_RES_MODDN
ldap_rename()またはldap_rename_ext()に対するresult情報です。
LDAP_RES_COMPARE
ldap_compare()またはldap_compare_ext()に対するresult情報です。
LDAP_RES_EXTENDED
ldap_extended_operation()に対するresult情報です。
LDAP_RES_SEARCH_ENTRY
検索でヒットしたエントリを表しています。
LDAP_RES_SEARCH_REFERENCE
リフェラル情報を含むメッセージを表しています。
受信したメッセージが存在する場合は、respパラメタが示すポインタ変数に、メッセージリストの先頭アドレスが設定されます。
図: LDAPMessageの通知形式
ldap_result()で通知されたメッセージリストは、メッセージリスト処理においてパラメタとして指定します。
【注意事項】
- 動的メモリの解放
ldap_result()で通知されたメッセージリストは、不要になった時点でldap_msgfree()を使用して解放しなければなりません。詳細は、動的メモリの解放を参照してください。
- メッセージIDの参照
取得したresult情報がどの非同期要求に対するものか判定する場合、ldap_msgid()でresult情報のメッセージIDを参照します。result情報には、対応する非同期要求のメッセージIDが付加されています。
目次 索引 |