[fedfs-utils] [PATCH 13/17] libnsdb: Remove *ldaperr argument from NCE admin APIs

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


Simplify the libnsdb APIs for managing NCEs by removing the *ldaperr
argument.  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/include/nsdb.h           |   11 +--
 src/libnsdb/administrator.c  |  164 ++++++++++++++++++------------------------
 src/nsdbc/nsdb-delete-nsdb.c |    7 +-
 src/nsdbc/nsdb-remove-nci.c  |    7 +-
 src/nsdbc/nsdb-simple-nce.c  |   11 +--
 src/nsdbc/nsdb-update-nci.c  |    9 +-
 6 files changed, 88 insertions(+), 121 deletions(-)

diff --git a/src/include/nsdb.h b/src/include/nsdb.h
index 7fec490..bad3e83 100644
--- a/src/include/nsdb.h
+++ b/src/include/nsdb.h
@@ -337,21 +337,18 @@ FedFsStatus	 nsdb_update_fsl_s(nsdb_t host, const char *nce,
  * Create a simple "ou=fedfs" entry
  */
 FedFsStatus	 nsdb_create_simple_nce_s(nsdb_t host, const char *parent,
-				char **dn, unsigned int *ldap_err);
+				char **dn);
 
 /**
  * Update or remove NSDB container information
  */
-FedFsStatus	 nsdb_update_nci_s(nsdb_t host, const char *nce,
-				unsigned int *ldap_err);
-FedFsStatus	 nsdb_remove_nci_s(nsdb_t host, const char *nce,
-				unsigned int *ldap_err);
+FedFsStatus	 nsdb_update_nci_s(nsdb_t host, const char *nce);
+FedFsStatus	 nsdb_remove_nci_s(nsdb_t host, const char *nce);
 
 /**
  * Remove all FedFS entries on an NSDB
  */
-FedFsStatus	 nsdb_delete_nsdb_s(nsdb_t host, const char *nce,
-				unsigned int *ldap_err);
+FedFsStatus	 nsdb_delete_nsdb_s(nsdb_t host, const char *nce);
 
 /**
  * Display or alter an object's fedfsDescription attribute
diff --git a/src/libnsdb/administrator.c b/src/libnsdb/administrator.c
index 0b2a3eb..c813afa 100644
--- a/src/libnsdb/administrator.c
+++ b/src/libnsdb/administrator.c
@@ -128,18 +128,17 @@ __nsdb_search_nsdb_nofilter_s(const char *func, LDAP *ld, const char *base,
  * Modify a FedFS-related record on an NSDB
  *
  * @param func NUL-terminated C string containing a function name
- * @param ld an initialized LDAP server descriptor
+ * @param host an initialized and bound nsdb_t object
  * @param dn a NUL-terminated C string containing DN of NSDB container entry
  * @param mods filled-in LDAP modification array
- * @param ldap_err OUT: possibly an LDAP error code
  * @return an LDAP result code
  */
 static int
-__nsdb_modify_nsdb_s(const char *func, LDAP *ld, const char *dn, LDAPMod **mods,
-		unsigned int *ldap_err)
+__nsdb_modify_nsdb_s(const char *func, nsdb_t host, const char *dn,
+		LDAPMod **mods)
 {
+	LDAP *ld = host->fn_ldap;
 	char *uri;
-	int rc;
 
 	if (ldap_get_option(ld, LDAP_OPT_URI, &uri) == LDAP_OPT_SUCCESS) {
 		xlog(D_CALL, "%s: modifying %s on %s", func, dn, uri);
@@ -147,11 +146,10 @@ __nsdb_modify_nsdb_s(const char *func, LDAP *ld, const char *dn, LDAPMod **mods,
 	} else
 		xlog(D_CALL, "%s: modifying %s", func, dn);
 
-	rc = ldap_modify_ext_s(ld, dn, mods, NULL, NULL);
-	if (rc != LDAP_SUCCESS) {
+	host->fn_ldaperr = ldap_modify_ext_s(ld, dn, mods, NULL, NULL);
+	if (host->fn_ldaperr != LDAP_SUCCESS) {
 		xlog(D_GENERAL, "%s: Failed to update %s: %s",
-			func, dn, ldap_err2string(rc));
-		*ldap_err = rc;
+			func, dn, ldap_err2string(host->fn_ldaperr));
 		return FEDFS_ERR_NSDB_LDAP_VAL;
 	}
 
@@ -162,8 +160,8 @@ __nsdb_modify_nsdb_s(const char *func, LDAP *ld, const char *dn, LDAPMod **mods,
 /**
  * Hide the __func__ argument at call sites
  */
-#define nsdb_modify_nsdb_s(ld, dn, mods, ldaperr) \
-	__nsdb_modify_nsdb_s(__func__, ld, dn, mods, ldaperr)
+#define nsdb_modify_nsdb_s(host, dn, mods) \
+	__nsdb_modify_nsdb_s(__func__, host, dn, mods)
 
 /**
  * Construct the DN of an FSN entry
@@ -1253,9 +1251,8 @@ nsdb_update_fsl_s(nsdb_t host, const char *nce, const char *fsl_uuid,
 /**
  * Add a new top-level o=fedfs entry
  *
- * @param ld an initialized LDAP server descriptor
+ * @param host an initialized and bound nsdb_t object
  * @param dn OUT: a NUL-terminated C string containing DN of new NCE
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  *
  * Caller must free "dn" with ber_memfree(3).
@@ -1273,15 +1270,14 @@ nsdb_update_fsl_s(nsdb_t host, const char *nce, const char *fsl_uuid,
    @endverbatim
  */
 static FedFsStatus
-nsdb_create_nce_add_top_entry(LDAP *ld, char **dn,
-		unsigned int *ldap_err)
+nsdb_create_nce_add_top_entry(nsdb_t host, char **dn)
 {
 	char *ocvals[4], *ouvals[2];
 	LDAPMod *attrs[3];
 	LDAPMod attr[2];
 	size_t len;
-	int i, rc;
 	char *nce;
+	int i;
 
 	for (i = 0; i < 3; i++)
 		attrs[i] = &attr[i];
@@ -1305,12 +1301,12 @@ nsdb_create_nce_add_top_entry(LDAP *ld, char **dn,
 	(void)sprintf(nce, "o=fedfs");
 
 	xlog(D_CALL, "%s: Using DN '%s'", __func__, nce);
-	rc = ldap_add_ext_s(ld, nce, attrs, NULL, NULL);
-	if (rc != LDAP_SUCCESS) {
+	host->fn_ldaperr = ldap_add_ext_s(host->fn_ldap, nce, attrs,
+								NULL, NULL);
+	if (host->fn_ldaperr != LDAP_SUCCESS) {
 		ber_memfree(nce);
 		xlog(D_GENERAL, "Failed to add new blank NCE: %s",
-				ldap_err2string(rc));
-		*ldap_err = rc;
+			ldap_err2string(host->fn_ldaperr));
 		return FEDFS_ERR_NSDB_LDAP_VAL;
 	}
 
@@ -1322,10 +1318,9 @@ nsdb_create_nce_add_top_entry(LDAP *ld, char **dn,
 /**
  * Add a new ou=fedfs entry under "parent"
  *
- * @param ld an initialized LDAP server descriptor
+ * @param host an initialized and bound nsdb_t object
  * @param parent a NUL-terminated C string containing DN of parent
  * @param dn OUT: a NUL-terminated C string containing DN of new NCE
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  *
  * Caller must free "dn" with ber_memfree(3).
@@ -1343,15 +1338,14 @@ nsdb_create_nce_add_top_entry(LDAP *ld, char **dn,
    @endverbatim
  */
 static FedFsStatus
-nsdb_create_nce_add_entry(LDAP *ld, const char *parent, char **dn,
-		unsigned int *ldap_err)
+nsdb_create_nce_add_entry(nsdb_t host, const char *parent, char **dn)
 {
 	char *ocvals[4], *ouvals[2];
 	LDAPMod *attrs[3];
 	LDAPMod attr[2];
 	size_t len;
-	int i, rc;
 	char *nce;
+	int i;
 
 	for (i = 0; i < 3; i++)
 		attrs[i] = &attr[i];
@@ -1375,12 +1369,12 @@ nsdb_create_nce_add_entry(LDAP *ld, const char *parent, char **dn,
 	(void)sprintf(nce, "ou=fedfs,%s", parent);
 
 	xlog(D_CALL, "%s: Using DN '%s'", __func__, nce);
-	rc = ldap_add_ext_s(ld, nce, attrs, NULL, NULL);
-	if (rc != LDAP_SUCCESS) {
+	host->fn_ldaperr = ldap_add_ext_s(host->fn_ldap, nce, attrs,
+								NULL, NULL);
+	if (host->fn_ldaperr != LDAP_SUCCESS) {
 		ber_memfree(nce);
 		xlog(D_GENERAL, "%s: Failed to add new blank NCE: %s",
-				__func__, ldap_err2string(rc));
-		*ldap_err = rc;
+				__func__, ldap_err2string(host->fn_ldaperr));
 		return FEDFS_ERR_NSDB_LDAP_VAL;
 	}
 
@@ -1395,7 +1389,6 @@ nsdb_create_nce_add_entry(LDAP *ld, const char *parent, char **dn,
  * @param host an initialized and bound nsdb_t object
  * @param parent a NUL-terminated C string containing DN of parent
  * @param dn OUT: a NUL-terminated C string containing DN of new NCE
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  *
  * Caller must free "dn" with free(3).
@@ -1404,8 +1397,7 @@ nsdb_create_nce_add_entry(LDAP *ld, const char *parent, char **dn,
  * the simple case of an "ou=fedfs" entry under some other entry.
  */
 FedFsStatus
-nsdb_create_simple_nce_s(nsdb_t host, const char *parent,
-		char **dn, unsigned int *ldap_err)
+nsdb_create_simple_nce_s(nsdb_t host, const char *parent, char **dn)
 {
 	FedFsStatus retval;
 	char *nce;
@@ -1420,17 +1412,15 @@ nsdb_create_simple_nce_s(nsdb_t host, const char *parent,
 		return FEDFS_ERR_INVAL;
 	}
 
-	if (parent == NULL || ldap_err == NULL) {
+	if (parent == NULL) {
 		xlog(L_ERROR, "%s: Invalid parameter", __func__);
 		return FEDFS_ERR_INVAL;
 	}
 
 	if (parent[0] == '\0')
-		retval = nsdb_create_nce_add_top_entry(host->fn_ldap,
-							&nce, ldap_err);
+		retval = nsdb_create_nce_add_top_entry(host, &nce);
 	else
-		retval = nsdb_create_nce_add_entry(host->fn_ldap, parent,
-							&nce, ldap_err);
+		retval = nsdb_create_nce_add_entry(host, parent, &nce);
 	if (retval != FEDFS_OK)
 		return retval;
 
@@ -1450,10 +1440,9 @@ nsdb_create_simple_nce_s(nsdb_t host, const char *parent,
 /**
  * Update NSDB Container Info in a namingContext entry
  *
- * @param ld an initialized LDAP server descriptor
+ * @param host an initialized and bound nsdb_t object
  * @param context a NUL-terminated C string containing DN of namingContext
  * @param nce a NUL-terminated C string containing value of new FedFsNceDN attribute
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  *
  * LDIF equivalent:
@@ -1470,8 +1459,7 @@ nsdb_create_simple_nce_s(nsdb_t host, const char *parent,
    @endverbatim
  */
 static FedFsStatus
-nsdb_add_nci_attributes_s(LDAP *ld, const char *context,
-		const char *nce, unsigned int *ldap_err)
+nsdb_add_nci_attributes_s(nsdb_t host, const char *context, const char *nce)
 {
 	char *ocvals[2], *ncevals[2];
 	LDAPMod *mods[3];
@@ -1488,7 +1476,7 @@ nsdb_add_nci_attributes_s(LDAP *ld, const char *context,
 				"fedfsNceDN", ncevals, nce);
 	mods[i] = NULL;
 
-	return nsdb_modify_nsdb_s(ld, context, mods, ldap_err);
+	return nsdb_modify_nsdb_s(host, context, mods);
 }
 
 /**
@@ -1496,11 +1484,10 @@ nsdb_add_nci_attributes_s(LDAP *ld, const char *context,
  *
  * @param host an initialized and bound nsdb_t object
  * @param nce a NUL-terminated C string containing DN of NSDB container entry
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  */
 FedFsStatus
-nsdb_update_nci_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
+nsdb_update_nci_s(nsdb_t host, const char *nce)
 {
 	FedFsStatus retval;
 	char *context;
@@ -1515,19 +1502,16 @@ nsdb_update_nci_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
 		return FEDFS_ERR_INVAL;
 	}
 
-	if (nce == NULL || ldap_err == NULL) {
+	if (nce == NULL) {
 		xlog(L_ERROR, "%s: Invalid parameter", __func__);
 		return FEDFS_ERR_INVAL;
 	}
 
 	retval = nsdb_find_naming_context_s(host, nce, &context);
-	if (retval != FEDFS_OK) {
-		*ldap_err = (unsigned int)nsdb_ldaperr(host);
+	if (retval != FEDFS_OK)
 		return retval;
-	}
 
-	retval = nsdb_add_nci_attributes_s(host->fn_ldap, context, nce,
-						ldap_err);
+	retval = nsdb_add_nci_attributes_s(host, context, nce);
 	free(context);
 	return retval;
 }
@@ -1535,9 +1519,8 @@ nsdb_update_nci_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
 /**
  * Remove fedfsNsdbContainerEntry from NCE object
  *
- * @param ld an initialized LDAP server descriptor
+ * @param host an initialized and bound nsdb_t object
  * @param nce a NUL-terminated C string containing DN of an NCE
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  *
  * LDIF equivalent:
@@ -1551,8 +1534,7 @@ nsdb_update_nci_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
    @endverbatim
  */
 static FedFsStatus
-nsdb_remove_nce_objectclass_s(LDAP *ld, const char *nce,
-		unsigned int *ldap_err)
+nsdb_remove_nce_objectclass_s(nsdb_t host, const char *nce)
 {
 	LDAPMod *mods[3];
 	char *ocvals[2];
@@ -1568,15 +1550,14 @@ nsdb_remove_nce_objectclass_s(LDAP *ld, const char *nce,
 				"fedfsNsdbContainerEntry");
 	mods[i] = NULL;
 
-	return nsdb_modify_nsdb_s(ld, nce, mods, ldap_err);
+	return nsdb_modify_nsdb_s(host, nce, mods);
 }
 
 /**
  * Remove NSDB Container Info from a namingContext object
  *
- * @param ld an initialized LDAP server descriptor
+ * @param host an initialized and bound nsdb_t object
  * @param context a NUL-terminated C string containing DN of namingContext
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  *
  * LDIF equivalent:
@@ -1592,8 +1573,7 @@ nsdb_remove_nce_objectclass_s(LDAP *ld, const char *nce,
    @endverbatim
  */
 static FedFsStatus
-nsdb_remove_nci_attributes_s(LDAP *ld, const char *context,
-		unsigned int *ldap_err)
+nsdb_remove_nci_attributes_s(nsdb_t host, const char *context)
 {
 	LDAPMod *mods[3];
 	char *ocvals[2];
@@ -1610,7 +1590,7 @@ nsdb_remove_nci_attributes_s(LDAP *ld, const char *context,
 				"fedfsNceDN", NULL, NULL);
 	mods[i] = NULL;
 
-	return nsdb_modify_nsdb_s(ld, context, mods, ldap_err);
+	return nsdb_modify_nsdb_s(host, context, mods);
 }
 
 /**
@@ -1618,11 +1598,10 @@ nsdb_remove_nci_attributes_s(LDAP *ld, const char *context,
  *
  * @param host an initialized and bound nsdb_t object
  * @param nce a NUL-terminated C string containing DN of NSDB container entry
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  */
 FedFsStatus
-nsdb_remove_nci_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
+nsdb_remove_nci_s(nsdb_t host, const char *nce)
 {
 	FedFsStatus retval;
 	char *context;
@@ -1637,22 +1616,20 @@ nsdb_remove_nci_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
 		return FEDFS_ERR_INVAL;
 	}
 
-	if (nce == NULL || ldap_err == NULL) {
+	if (nce == NULL) {
 		xlog(L_ERROR, "%s: Invalid parameter", __func__);
 		return FEDFS_ERR_INVAL;
 	}
 
 	retval = nsdb_find_naming_context_s(host, nce, &context);
-	if (retval != FEDFS_OK) {
-		*ldap_err = (unsigned int)nsdb_ldaperr(host);
+	if (retval != FEDFS_OK)
 		return retval;
-	}
 
-	retval = nsdb_remove_nce_objectclass_s(host->fn_ldap, nce, ldap_err);
+	retval = nsdb_remove_nce_objectclass_s(host, nce);
 	if (retval != FEDFS_OK)
 		goto out;
 
-	retval = nsdb_remove_nci_attributes_s(host->fn_ldap, context, ldap_err);
+	retval = nsdb_remove_nci_attributes_s(host, context);
 
 out:
 	free(context);
@@ -1662,33 +1639,30 @@ out:
 /**
  * Delete one FSN child
  *
- * @param ld an initialized LDAP server descriptor
+ * @param host an initialized and bound nsdb_t object
  * @param entry an LDAP_RES_SEARCH_ENTRY message
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  */
 static FedFsStatus
-nsdb_parse_delete_nsdb_fsns_entry_s(LDAP *ld, LDAPMessage *entry,
-		unsigned int *ldap_err)
+nsdb_parse_delete_nsdb_fsns_entry_s(nsdb_t host, LDAPMessage *entry)
 {
+	LDAP *ld = host->fn_ldap;
 	FedFsStatus retval;
 	char *dn;
-	int rc;
 
 	dn = ldap_get_dn(ld, entry);
 	if (dn == NULL) {
-		ldap_get_option(ld, LDAP_OPT_RESULT_CODE, &rc);
+		ldap_get_option(ld, LDAP_OPT_RESULT_CODE, &host->fn_ldaperr);
 		xlog(D_GENERAL, "%s: Failed to parse entry: %s",
-			__func__, ldap_err2string(rc));
-		*ldap_err = rc;
+			__func__, ldap_err2string(host->fn_ldaperr));
 		return FEDFS_ERR_NSDB_LDAP_VAL;
 	}
 
-	retval = nsdb_delete_fsn_fsls_s(ld, dn, ldap_err);
+	retval = nsdb_delete_fsn_fsls_s(host->fn_ldap, dn, &host->fn_ldaperr);
 	if (retval != FEDFS_OK)
 		goto out;
 
-	retval = nsdb_delete_fsn_entry_s(ld, dn, ldap_err);
+	retval = nsdb_delete_fsn_entry_s(ld, dn, &host->fn_ldaperr);
 
 out:
 	ber_memfree(dn);
@@ -1698,23 +1672,23 @@ out:
 /**
  * Remove all FSN records from an NSDB
  *
- * @param ld an initialized LDAP server descriptor
+ * @param host an initialized and bound nsdb_t object
  * @param nce a NUL-terminated C string containing DN of NSDB container entry
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  */
 static FedFsStatus
-nsdb_delete_nsdb_fsns_s(LDAP *ld, const char *nce, unsigned int *ldap_err)
+nsdb_delete_nsdb_fsns_s(nsdb_t host, const char *nce)
 {
 	LDAPMessage *message, *response;
+	LDAP *ld = host->fn_ldap;
 	FedFsStatus retval;
-	int entries, rc;
+	int entries;
 
 	xlog(D_CALL, "%s: searching for children of %s", __func__, nce);
 
 again:
-	rc = nsdb_search_nsdb_nofilter_s(ld, nce, &response);
-	switch (rc) {
+	host->fn_ldaperr = nsdb_search_nsdb_nofilter_s(ld, nce, &response);
+	switch (host->fn_ldaperr) {
 	case LDAP_SUCCESS:
 	case LDAP_SIZELIMIT_EXCEEDED:
 		break;
@@ -1724,8 +1698,7 @@ again:
 		return FEDFS_OK;
 	default:
 		xlog(D_GENERAL, "%s: Failed to retrieve entries for %s: %s",
-			__func__, nce, ldap_err2string(rc));
-		*ldap_err = rc;
+			__func__, nce, ldap_err2string(host->fn_ldaperr));
 		return FEDFS_ERR_NSDB_LDAP_VAL;
 	}
 	if (response == NULL) {
@@ -1748,11 +1721,12 @@ again:
 	     message = ldap_next_message(ld, message)) {
 		switch (ldap_msgtype(message)) {
 		case LDAP_RES_SEARCH_ENTRY:
-			retval = nsdb_parse_delete_nsdb_fsns_entry_s(ld, message,
-								ldap_err);
+			retval = nsdb_parse_delete_nsdb_fsns_entry_s(host,
+								message);
 			break;
 		case LDAP_RES_SEARCH_RESULT:
-			retval = nsdb_parse_result(ld, message, NULL, ldap_err);
+			retval = nsdb_parse_result(ld, message, NULL,
+							&host->fn_ldaperr);
 			break;
 		default:
 			xlog(L_ERROR, "%s: Unrecognized LDAP message type",
@@ -1763,7 +1737,8 @@ again:
 
 out:
 	ldap_msgfree(response);
-	if (rc == LDAP_SIZELIMIT_EXCEEDED && retval == FEDFS_OK)
+	if (host->fn_ldaperr == LDAP_SIZELIMIT_EXCEEDED &&
+	    retval == FEDFS_OK)
 		goto again;
 	return retval;
 }
@@ -1773,11 +1748,10 @@ out:
  *
  * @param host an initialized and bound nsdb_t object
  * @param nce a NUL-terminated C string containing DN of NSDB container entry
- * @param ldap_err OUT: possibly an LDAP error code
  * @return a FedFsStatus code
  */
 FedFsStatus
-nsdb_delete_nsdb_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
+nsdb_delete_nsdb_s(nsdb_t host, const char *nce)
 {
 	FedFsStatus retval;
 
@@ -1791,16 +1765,16 @@ nsdb_delete_nsdb_s(nsdb_t host, const char *nce, unsigned int *ldap_err)
 		return FEDFS_ERR_INVAL;
 	}
 
-	if (nce == NULL || ldap_err == NULL) {
+	if (nce == NULL) {
 		xlog(L_ERROR, "%s: Invalid parameter", __func__);
 		return FEDFS_ERR_INVAL;
 	}
 
-	retval = nsdb_remove_nci_s(host, nce, ldap_err);
+	retval = nsdb_remove_nci_s(host, nce);
 	if (retval != FEDFS_OK)
 		return retval;
 
-	return nsdb_delete_nsdb_fsns_s(host->fn_ldap, nce, ldap_err);
+	return nsdb_delete_nsdb_fsns_s(host, nce);
 }
 
 /**
diff --git a/src/nsdbc/nsdb-delete-nsdb.c b/src/nsdbc/nsdb-delete-nsdb.c
index 673170f..1b51684 100644
--- a/src/nsdbc/nsdb-delete-nsdb.c
+++ b/src/nsdbc/nsdb-delete-nsdb.c
@@ -96,7 +96,6 @@ main(int argc, char **argv)
 {
 	char *progname, *binddn, *nsdbname;
 	unsigned short nsdbport;
-	unsigned int ldap_err;
 	FedFsStatus retval;
 	nsdb_t host;
 	char *nce;
@@ -214,7 +213,7 @@ main(int argc, char **argv)
 		goto out_free;
 	}
 
-	retval = nsdb_delete_nsdb_s(host, nce, &ldap_err);
+	retval = nsdb_delete_nsdb_s(host, nce);
 	switch (retval) {
 	case FEDFS_OK:
 		printf("Successfully removed NCE %s\n", nce);
@@ -223,7 +222,7 @@ main(int argc, char **argv)
 		fprintf(stderr, "NCE %s does not exist\n", nce);
 		break;
 	case FEDFS_ERR_NSDB_LDAP_VAL:
-		switch (ldap_err) {
+		switch (nsdb_ldaperr(host)) {
 		case LDAP_REFERRAL:
 			fprintf(stderr, "Encountered LDAP referral on %s:%u\n",
 				nsdbname, nsdbport);
@@ -234,7 +233,7 @@ main(int argc, char **argv)
 			break;
 		default:
 			fprintf(stderr, "Failed to remove NCE %s: %s\n",
-				nce, ldap_err2string(ldap_err));
+				nce, nsdb_ldaperr2string(host));
 		}
 		break;
 	default:
diff --git a/src/nsdbc/nsdb-remove-nci.c b/src/nsdbc/nsdb-remove-nci.c
index d5d44a2..d98410d 100644
--- a/src/nsdbc/nsdb-remove-nci.c
+++ b/src/nsdbc/nsdb-remove-nci.c
@@ -98,7 +98,6 @@ main(int argc, char **argv)
 {
 	char *progname, *binddn, *nsdbname;
 	unsigned short nsdbport;
-	unsigned int ldap_err;
 	FedFsStatus retval;
 	nsdb_t host;
 	char *nce;
@@ -211,7 +210,7 @@ main(int argc, char **argv)
 
 	if (nce == NULL)
 		nce = (char *)nsdb_default_nce(host);
-	retval = nsdb_remove_nci_s(host, nce, &ldap_err);
+	retval = nsdb_remove_nci_s(host, nce);
 	switch (retval) {
 	case FEDFS_OK:
 		printf("Successfully removed NCI for NCE %s\n", nce);
@@ -220,7 +219,7 @@ main(int argc, char **argv)
 		fprintf(stderr, "NCE %s does not exist\n", nce);
 		break;
 	case FEDFS_ERR_NSDB_LDAP_VAL:
-		switch (ldap_err) {
+		switch (nsdb_ldaperr(host)) {
 		case LDAP_REFERRAL:
 			fprintf(stderr, "Encountered LDAP referral on %s:%u\n",
 				nsdbname, nsdbport);
@@ -231,7 +230,7 @@ main(int argc, char **argv)
 			break;
 		default:
 			fprintf(stderr, "Failed to remove NCI for NCE %s: %s\n",
-				nce, ldap_err2string(ldap_err));
+				nce, nsdb_ldaperr2string(host));
 		}
 		break;
 	default:
diff --git a/src/nsdbc/nsdb-simple-nce.c b/src/nsdbc/nsdb-simple-nce.c
index dce4b31..4eba7b1 100644
--- a/src/nsdbc/nsdb-simple-nce.c
+++ b/src/nsdbc/nsdb-simple-nce.c
@@ -97,7 +97,6 @@ main(int argc, char **argv)
 {
 	char *progname, *binddn, *nsdbname, *nce, *parent;
 	unsigned short nsdbport;
-	unsigned int ldap_err;
 	FedFsStatus retval;
 	nsdb_t host;
 	int arg;
@@ -209,13 +208,13 @@ main(int argc, char **argv)
 		goto out_free;
 	}
 
-	retval = nsdb_create_simple_nce_s(host, parent, &nce, &ldap_err);
+	retval = nsdb_create_simple_nce_s(host, parent, &nce);
 	switch (retval) {
 	case FEDFS_OK:
 		break;
 	case FEDFS_ERR_NSDB_LDAP_VAL:
 		fprintf(stderr, "Failed to create NCE: %s\n",
-			ldap_err2string(ldap_err));
+			nsdb_ldaperr2string(host));
 		goto out_close;
 	default:
 		fprintf(stderr, "Failed to create NCE: %s\n",
@@ -223,7 +222,7 @@ main(int argc, char **argv)
 		goto out_close;
 	}
 
-	retval = nsdb_update_nci_s(host, nce, &ldap_err);
+	retval = nsdb_update_nci_s(host, nce);
 	switch (retval) {
 	case FEDFS_OK:
 		printf("Successfully created NCE %s\n", nce);
@@ -234,7 +233,7 @@ main(int argc, char **argv)
 			"for this NSDB\n", nce);
 		break;
 	case FEDFS_ERR_NSDB_LDAP_VAL:
-		switch (ldap_err) {
+		switch (nsdb_ldaperr(host)) {
 		case LDAP_REFERRAL:
 			fprintf(stderr, "Encountered LDAP referral on %s:%u\n",
 				nsdbname, nsdbport);
@@ -245,7 +244,7 @@ main(int argc, char **argv)
 			break;
 		default:
 			fprintf(stderr, "Failed to update NCI: %s\n",
-				ldap_err2string(ldap_err));
+				nsdb_ldaperr2string(host));
 		}
 		break;
 	default:
diff --git a/src/nsdbc/nsdb-update-nci.c b/src/nsdbc/nsdb-update-nci.c
index f2b0295..22d93f9 100644
--- a/src/nsdbc/nsdb-update-nci.c
+++ b/src/nsdbc/nsdb-update-nci.c
@@ -102,7 +102,6 @@ main(int argc, char **argv)
 {
 	char *progname, *binddn, *nsdbname, *nce;
 	unsigned short nsdbport;
-	unsigned int ldap_err;
 	FedFsStatus retval;
 	_Bool delete;
 	nsdb_t host;
@@ -227,9 +226,9 @@ main(int argc, char **argv)
 	}
 
 	if (delete)
-		retval = nsdb_remove_nci_s(host, nce, &ldap_err);
+		retval = nsdb_remove_nci_s(host, nce);
 	else
-		retval = nsdb_update_nci_s(host, nce, &ldap_err);
+		retval = nsdb_update_nci_s(host, nce);
 	switch (retval) {
 	case FEDFS_OK:
 		printf("Successfully updated NCI\n");
@@ -239,7 +238,7 @@ main(int argc, char **argv)
 			"for this NSDB\n", nce);
 		break;
 	case FEDFS_ERR_NSDB_LDAP_VAL:
-		switch (ldap_err) {
+		switch (nsdb_ldaperr(host)) {
 		case LDAP_REFERRAL:
 			fprintf(stderr, "Encountered LDAP referral on %s:%u\n",
 				nsdbname, nsdbport);
@@ -250,7 +249,7 @@ main(int argc, char **argv)
 			break;
 		default:
 			fprintf(stderr, "Failed to update NCI: %s\n",
-				ldap_err2string(ldap_err));
+				nsdb_ldaperr2string(host));
 		}
 		break;
 	default:




More information about the fedfs-utils-devel mailing list