I'd like to get rid of the *ldaperr argument for libnsdb function calls. Start by introducing a couple of functions that can extract this value from an nsdb_t object.
The new nsdb_ldaperr() returns a signed integer, same as is returned from the LDAP library, but unlike the existing *ldaperr argument to most of the libnsdb API. Signed-off-by: Chuck Lever <[email protected]> --- src/include/nsdb.h | 2 ++ src/libnsdb/nsdb-internal.h | 1 + src/libnsdb/nsdb.c | 24 ++++++++++++++++++++++++ 3 files changed, 27 insertions(+) diff --git a/src/include/nsdb.h b/src/include/nsdb.h index 4f6aadc..d1aafe1 100644 --- a/src/include/nsdb.h +++ b/src/include/nsdb.h @@ -270,6 +270,8 @@ const char *nsdb_default_binddn(const nsdb_t host); const char *nsdb_default_nce(const nsdb_t host); _Bool nsdb_follow_referrals(const nsdb_t host); const char *nsdb_referred_to(const nsdb_t host); +int nsdb_ldaperr(const nsdb_t host); +const char *nsdb_ldaperr2string(const nsdb_t host); /** * Data type helpers for nsdb_t objects diff --git a/src/libnsdb/nsdb-internal.h b/src/libnsdb/nsdb-internal.h index 9875fd4..4746704 100644 --- a/src/libnsdb/nsdb-internal.h +++ b/src/libnsdb/nsdb-internal.h @@ -46,6 +46,7 @@ struct fedfs_nsdb { char * fn_default_nce; _Bool fn_follow_referrals; char ** fn_referrals; + int fn_ldaperr; }; /** diff --git a/src/libnsdb/nsdb.c b/src/libnsdb/nsdb.c index 090647a..31cf5ce 100644 --- a/src/libnsdb/nsdb.c +++ b/src/libnsdb/nsdb.c @@ -486,6 +486,30 @@ nsdb_referred_to(const nsdb_t host) } /** + * Return ldap error code from most recent LDAP operation + * + * @param host an instantiated nsdb_t object + * @return an LDAP error code + */ +int +nsdb_ldaperr(const nsdb_t host) +{ + return host->fn_ldaperr; +} + +/** + * Return ldap error message from most recent LDAP operation + * + * @param host an instantiated nsdb_t object + * @return NUL-terminated C string containing LDAP error message + */ +const char * +nsdb_ldaperr2string(const nsdb_t host) +{ + return ldap_err2string(host->fn_ldaperr); +} + +/** * Retrieve NSDB-related environment variables * * @param nsdbname OUT: pointer to statically allocated NUL-terminated C string containing NSDB hostname _______________________________________________ fedfs-utils-devel mailing list [email protected] https://oss.oracle.com/mailman/listinfo/fedfs-utils-devel
