以下は、C での私のコードの行です。
ldap_bind_s(ld, root_dn, root_pw, auth_method) != LDAP_SUCCESS
ldap_perror( ld, "ldap_bind" );//to print the EXACT error like 525,52e
実行時
Project ./a.out CN=username,OU=ABC,DC=example,DC=com wrong-pasword
ldap_bind: Invalid credentials (49)
additional info: 80090308: LdapErr: DSID-0C090334, comment:
AcceptSecurityContext error, data 52e, vece
ここで、データの後の文字列 52e は拡張エラーを表します。この拡張エラーに直接アクセスする方法を誰か提案してください。現在、文字列を解析してこの値を抽出しています。通常、LDAP_OPT_ERROR_NUMBER を印刷すると、49(INVALID_CREDENTIALS) だけが返されますが、それでは十分ではありません。拡張エラーのコード (コードのみ) を取得するにはどうすればよいですか。
ld->ld_errno を印刷しようとしましたが、ld にメモリが割り当てられていないため、印刷できません。