[fedfs-utils] [PATCH 09/17] libnsdb: Remove *ldaperr argument from nsdb_ping API
Chuck Lever
chuck.lever at oracle.com
Thu Jan 2 12:28:10 PST 2014
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 <chuck.lever at oracle.com>
---
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);
More information about the fedfs-utils-devel
mailing list