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

Reply via email to