[fedfs-utils] [PATCH 08/17] libnsdb: Remove *ldaperr argument from nsdb_find_naming_context_s()

Chuck Lever chuck.lever at oracle.com
Thu Jan 2 12:28:02 PST 2014


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 <chuck.lever at oracle.com>
---
 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;




More information about the fedfs-utils-devel mailing list