Simplify the external libnsdb API by removing the *ldaperr argument from nsdb_ping_s() and friends. When it is needed, the ldaperr value can be extracted with the new nsdb_ldaperr() function.
Signed-off-by: Chuck Lever <[email protected]> --- src/fedfsd/svc.c | 2 +- src/include/nsdb.h | 4 ++-- src/libnsdb/fileserver.c | 30 ++++++++++-------------------- src/nsdbparams/update.c | 2 +- 4 files changed, 14 insertions(+), 24 deletions(-) diff --git a/src/fedfsd/svc.c b/src/fedfsd/svc.c index 3aa4314..e531f3f 100644 --- a/src/fedfsd/svc.c +++ b/src/fedfsd/svc.c @@ -978,8 +978,8 @@ out: static FedFsStatus fedfsd_test_nsdb(const char *hostname, unsigned short port) { - unsigned int ldap_err; FedFsStatus retval; + int ldap_err; xlog(D_CALL, "%s: pinging %s:%u", __func__, hostname, port); diff --git a/src/include/nsdb.h b/src/include/nsdb.h index c5c87dd..3a183c2 100644 --- a/src/include/nsdb.h +++ b/src/include/nsdb.h @@ -406,13 +406,13 @@ FedFsStatus nsdb_list_s(nsdb_t host, const char *nce, char ***fsns, /** * Ping an NSDB host */ -FedFsStatus nsdb_ping_nsdb_s(nsdb_t host, unsigned int *ldap_err); +FedFsStatus nsdb_ping_nsdb_s(nsdb_t host); /** * Ping an LDAP server */ FedFsStatus nsdb_ping_s(const char *hostname, const unsigned short port, - unsigned int *ldap_err); + int *ldap_err); /** * Enable LDAP debugging when contacting an NSDB diff --git a/src/libnsdb/fileserver.c b/src/libnsdb/fileserver.c index d97b5d6..0ad9a35 100644 --- a/src/libnsdb/fileserver.c +++ b/src/libnsdb/fileserver.c @@ -1931,14 +1931,13 @@ out: * * @param host an initialized, bound, and open nsdb_t object * @param contexts an array of NUL-terminated UTF-8 strings - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code * * Returns FEDFS_OK if "host" has at least one namingContext that * lists an NCE prefix. Otherwise a FEDFS_ERR status code is returned. */ static FedFsStatus -nsdb_ping_contexts_s(nsdb_t host, char **contexts, unsigned int *ldap_err) +nsdb_ping_contexts_s(nsdb_t host, char **contexts) { FedFsStatus retval; char *dn; @@ -1954,8 +1953,6 @@ nsdb_ping_contexts_s(nsdb_t host, char **contexts, unsigned int *ldap_err) case FEDFS_ERR_NSDB_LDAP_VAL: if (nsdb_ldaperr(host) == LDAP_CONFIDENTIALITY_REQUIRED) retval = FEDFS_ERR_NSDB_AUTH; - else - *ldap_err = (unsigned int)nsdb_ldaperr(host); goto out; default: retval = FEDFS_ERR_NSDB_NONCE; @@ -1969,14 +1966,13 @@ out: * Ping an NSDB * * @param host an initialized and bound nsdb_t object - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code * * Returns FEDFS_OK if "host" is up and has at least one namingContext * that lists an NCE prefix. Otherwise a FEDFS_ERR status code is returned. */ FedFsStatus -nsdb_ping_nsdb_s(nsdb_t host, unsigned int *ldap_err) +nsdb_ping_nsdb_s(nsdb_t host) { FedFsStatus retval; char **contexts = NULL; @@ -1991,18 +1987,11 @@ nsdb_ping_nsdb_s(nsdb_t host, unsigned int *ldap_err) return FEDFS_ERR_INVAL; } - if (ldap_err == NULL) { - xlog(L_ERROR, "%s: Invalid parameter", __func__); - return FEDFS_ERR_INVAL; - } - retval = nsdb_get_naming_contexts_s(host, &contexts); - if (retval != FEDFS_OK) { - *ldap_err = (unsigned int)nsdb_ldaperr(host); + if (retval != FEDFS_OK) return retval; - } - retval = nsdb_ping_contexts_s(host, contexts, ldap_err); + retval = nsdb_ping_contexts_s(host, contexts); nsdb_free_string_array(contexts); return retval; @@ -2022,7 +2011,7 @@ nsdb_ping_nsdb_s(nsdb_t host, unsigned int *ldap_err) */ FedFsStatus nsdb_ping_s(const char *hostname, const unsigned short port, - unsigned int *ldap_err) + int *ldap_err) { FedFsStatus retval; nsdb_t host; @@ -2037,12 +2026,13 @@ nsdb_ping_s(const char *hostname, const unsigned short port, return retval; retval = nsdb_open_nsdb(host, NULL, NULL); - if (retval != FEDFS_OK) { - *ldap_err = (unsigned int)nsdb_ldaperr(host); + if (retval != FEDFS_OK) goto out_free; - } - retval = nsdb_ping_nsdb_s(host, ldap_err); + retval = nsdb_ping_nsdb_s(host); + if (retval != FEDFS_OK) + *ldap_err = nsdb_ldaperr(host); + nsdb_close_nsdb(host); out_free: diff --git a/src/nsdbparams/update.c b/src/nsdbparams/update.c index ef0ceb0..f17da36 100644 --- a/src/nsdbparams/update.c +++ b/src/nsdbparams/update.c @@ -102,8 +102,8 @@ nsdbparams_update_usage(const char *progname) static FedFsStatus nsdbparams_test_nsdb(const char *nsdbname, unsigned short nsdbport) { - unsigned int ldap_err; FedFsStatus retval; + int ldap_err; printf("Pinging NSDB %s:%u...\n", nsdbname, nsdbport); fflush(stdout); _______________________________________________ fedfs-utils-devel mailing list [email protected] https://oss.oracle.com/mailman/listinfo/fedfs-utils-devel
