Simplify nsdb_find_naming_context_s() by removing the *ldaperr
argument.  Instead, the ldaperr value can be extracted with the new
nsdb_ldaperr() function when it is needed.

Signed-off-by: Chuck Lever <[email protected]>
---
 src/include/nsdb.h          |    2 +-
 src/libnsdb/administrator.c |   12 ++++++++----
 src/libnsdb/fileserver.c    |   15 ++++++---------
 3 files changed, 15 insertions(+), 14 deletions(-)

diff --git a/src/include/nsdb.h b/src/include/nsdb.h
index ae58397..c5c87dd 100644
--- a/src/include/nsdb.h
+++ b/src/include/nsdb.h
@@ -381,7 +381,7 @@ FedFsStatus  nsdb_get_ncedn_s(nsdb_t host, const char 
*naming_context,
                                char **dn);
 FedFsStatus     nsdb_get_naming_contexts_s(nsdb_t host, char ***contexts);
 FedFsStatus     nsdb_find_naming_context_s(nsdb_t host, const char *entry,
-                               char **context, unsigned int *ldap_err);
+                               char **context);
 
 /**
  * Resolve an FSN (5.2.2)
diff --git a/src/libnsdb/administrator.c b/src/libnsdb/administrator.c
index d22e8c0..8092cce 100644
--- a/src/libnsdb/administrator.c
+++ b/src/libnsdb/administrator.c
@@ -1520,9 +1520,11 @@ nsdb_update_nci_s(nsdb_t host, const char *nce, unsigned 
int *ldap_err)
                return FEDFS_ERR_INVAL;
        }
 
-       retval = nsdb_find_naming_context_s(host, nce, &context, ldap_err);
-       if (retval != FEDFS_OK)
+       retval = nsdb_find_naming_context_s(host, nce, &context);
+       if (retval != FEDFS_OK) {
+               *ldap_err = (unsigned int)nsdb_ldaperr(host);
                return retval;
+       }
 
        retval = nsdb_add_nci_attributes_s(host->fn_ldap, context, nce,
                                                ldap_err);
@@ -1640,9 +1642,11 @@ nsdb_remove_nci_s(nsdb_t host, const char *nce, unsigned 
int *ldap_err)
                return FEDFS_ERR_INVAL;
        }
 
-       retval = nsdb_find_naming_context_s(host, nce, &context, ldap_err);
-       if (retval != FEDFS_OK)
+       retval = nsdb_find_naming_context_s(host, nce, &context);
+       if (retval != FEDFS_OK) {
+               *ldap_err = (unsigned int)nsdb_ldaperr(host);
                return retval;
+       }
 
        retval = nsdb_remove_nce_objectclass_s(host->fn_ldap, nce, ldap_err);
        if (retval != FEDFS_OK)
diff --git a/src/libnsdb/fileserver.c b/src/libnsdb/fileserver.c
index 8c451ee..d97b5d6 100644
--- a/src/libnsdb/fileserver.c
+++ b/src/libnsdb/fileserver.c
@@ -2061,7 +2061,7 @@ out_free:
  */
 static FedFsStatus
 nsdb_match_root_suffix(const char *entry, char **contexts,
-               char **context, unsigned int *ldap_err)
+               char **context, int *ldap_err)
 {
        unsigned int i;
 
@@ -2095,7 +2095,6 @@ found:
  * @param host an initialized and bound nsdb_t object
  * @param entry a NUL-terminated C string containing DN of some entry
  * @param context OUT: a NUL-terminated C string containing a suffix DN
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  *
  * "entry" must already exist on "host".  Caller must free
@@ -2106,8 +2105,7 @@ found:
  *   2. For each root suffix, see if "entry" ends with that suffix
  */
 FedFsStatus
-nsdb_find_naming_context_s(nsdb_t host, const char *entry, char **context,
-               unsigned int *ldap_err)
+nsdb_find_naming_context_s(nsdb_t host, const char *entry, char **context)
 {
        char **contexts = NULL;
        FedFsStatus retval;
@@ -2122,18 +2120,17 @@ nsdb_find_naming_context_s(nsdb_t host, const char 
*entry, char **context,
                return FEDFS_ERR_INVAL;
        }
 
-       if (context == NULL || ldap_err == NULL) {
+       if (context == 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_match_root_suffix(entry, contexts, context, ldap_err);
+       retval = nsdb_match_root_suffix(entry, contexts, context,
+                                                       &host->fn_ldaperr);
 
        nsdb_free_string_array(contexts);
        return retval;


_______________________________________________
fedfs-utils-devel mailing list
[email protected]
https://oss.oracle.com/mailman/listinfo/fedfs-utils-devel

Reply via email to