InfoDirectory使用手引書 |
目次 索引 |
第3部 SDK編 | > 第5章 アプリケーション開発環境(LDAP C API) | > 5.2 関数インタフェース | > 5.2.15 エラー情報の取得 |
この関数は、受信したresult情報内の各種情報を読込みます。この関数は、LDAP_RES_SEARCH_ENTRY、LDAP_RES_SEARCH_REFERENCE以外のresult情報に対して使用します。【指定形式】
int ldap_parse_result(
LDAP *ld,
LDAPMessage *res,
int *errcodep,
char **matcheddnp,
char **errmsgp,
char ***referralsp,
LDAPControl ***serverctrlsp,
int freeit
);【パラメタの説明】
- ld
ldap_init()またはldapssl_init()で通知された、セションハンドルを指定します。
- res
result情報のアドレスを指定します。
- errcodep
result情報に含まれるLDAPエラーコードを格納する、変数のアドレスを指定します。このパラメタが示す変数は、NULLで初期化しておく必要があります。LDAPエラーコードを読込まない場合は、このパラメタにNULLを指定します。
- matcheddnp
一致した範囲を示すDNのアドレスを格納する、ポインタ変数のアドレスを指定します。このパラメタが示す変数は、NULLで初期化しておく必要があります。一致した範囲を示すDNを読込まない場合は、このパラメタにNULLを指定します。
- errmsgp
詳細エラーメッセージのアドレスを格納する、変数のアドレスを指定します。このパラメタが示す変数は、NULLで初期化しておく必要があります。詳細エラーメッセージを読込まない場合は、このパラメタにNULLを指定します。
- referralsp
リフェラル情報のポインタ配列のアドレスを格納する、変数のアドレスを指定します。このパラメタが示す変数は、NULLで初期化しておく必要があります。リフェラル情報を読込まない場合は、このパラメタにNULLを指定します。
- serverctrlsp
通知されたサーバコントロールのポインタ配列アドレスを格納する、変数のアドレスを指定します。このパラメタが示す変数は、NULLで初期化しておく必要があります。サーバコントロールを読込まない場合は、このパラメタにNULLを指定します。
- freeit
呼出し元に復帰する際に、resパラメタで指定したresult情報を解放するかどうかを指定します。
- result情報を解放する場合 : 0以外を指定
- result情報を解放しない場合 : 0を指定
【復帰値】
この関数は、result情報の解析に失敗した場合に、LDAPエラーコードを復帰値として返します。また、パラメタで指定した変数には、以下の情報が設定されます。
- errcodepパラメタで指定された変数
LDAPエラーコードが設定されます。
- matcheddnpパラメタで指定された変数
適合したDNの範囲を示す文字列のアドレスが設定されます。この文字列は、LDAPエラーコードがLDAP_NO_SUCH_OBJECTの場合に通知されます。この領域は不要になった時点でldap_memfree()を使用し解放しなければなりません。
- errmsgpパラメタで指定された変数
指定されたresult情報内の、詳細エラーメッセージのアドレスが設定されます。この領域は不要になった時点でldap_memfree()を使用し解放しなければなりません。
- referralspパラメタで指定された変数
指定されたresult情報に含まれている、リフェラル情報のポインタ配列のアドレスが設定されます。この領域は不要になった時点でldap_value_free()を使用し解放しなければなりません。
- serverctrlspパラメタで指定された変数
指定されたresult情報に含まれている、サーバコントロールのポインタ配列アドレスが設定されます。この領域は不要になった時点でldap_controls_free()を使用し解放しなければなりません。
【注意事項】
- result情報の解放
ldap_parse_result()を呼出す際に、freeitパラメタに0以外の値を指定した場合、ライブラリ内部でldap_msgfree()を使用してresult情報を解放します。このため、これ以降は、result情報にアクセスできなくなります。ldap_msgfree()を呼出す際に、freeitパラメタに0を指定した場合には、不要になった時点で、呼出し元がldap_msgfree()を使用してresult情報を解放しなければなりません。
- LDAPエラーコード
LDAPエラーコードの値については、LDAPエラーコードを参照してください。
- エラーメッセージの取得
LDAPエラーコードに対応するエラーメッセージを取得する場合は、ldap_err2string()を使用します。
- リフェラル
リフェラルの自動追跡時に、エラー情報およびリフェラル情報が取得される場合、取得されたリフェラル先のInfoDirectoryサーバでエラーが発生したことを示しています。リフェラル情報は、ホスト名、ポート番号、検索ベースからなるLDAP URLで通知されます。検索ベースは通知されない場合があります。
目次 索引 |