Simplify nsdb_get_ncedn_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/fileserver.c | 62 +++++++++++++++++++--------------------------- src/nsdbc/nsdb-list.c | 2 + src/nsdbc/nsdb-nces.c | 2 + 4 files changed, 29 insertions(+), 39 deletions(-) diff --git a/src/include/nsdb.h b/src/include/nsdb.h index 56a26a2..5709f0c 100644 --- a/src/include/nsdb.h +++ b/src/include/nsdb.h @@ -378,7 +378,7 @@ FedFsStatus nsdb_annotation_delete_s(nsdb_t host, const char *dn, * NSDB Container Entry enumeration (5.2.1) */ FedFsStatus nsdb_get_ncedn_s(nsdb_t host, const char *naming_context, - char **dn, unsigned int *ldap_err); + char **dn); FedFsStatus nsdb_get_naming_contexts_s(nsdb_t host, char ***contexts, unsigned int *ldap_err); FedFsStatus nsdb_find_naming_context_s(nsdb_t host, const char *entry, diff --git a/src/libnsdb/fileserver.c b/src/libnsdb/fileserver.c index f6a6e53..efb8c5a 100644 --- a/src/libnsdb/fileserver.c +++ b/src/libnsdb/fileserver.c @@ -362,7 +362,6 @@ nsdb_parse_ncedn_entry(LDAP *ld, LDAPMessage *entry, char **dn) * @param host an initialized and bound nsdb_t object * @param naming_context NUL-terminated C string containing one naming context * @param dn OUT: pointer to a NUL-terminated C string containing full DN of NSDB container - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code * * Caller must free "dn" with free(3) @@ -377,18 +376,19 @@ nsdb_parse_ncedn_entry(LDAP *ld, LDAPMessage *entry, char **dn) * The full DN for the NSDB container entry is returned in "dn." */ static FedFsStatus -nsdb_old_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn, - unsigned int *ldap_err) +nsdb_old_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn) { LDAPMessage *response, *message; LDAP *ld = host->fn_ldap; FedFsStatus retval; char *tmp = NULL; - int rc, entries; + int entries; - rc = nsdb_search_nsdb_attr_s(ld, naming_context, "(objectClass=*)", - "fedfsNceDN", &response); - switch (rc) { + host->fn_ldaperr = nsdb_search_nsdb_attr_s(ld, naming_context, + "(objectClass=*)", + "fedfsNceDN", + &response); + switch (host->fn_ldaperr) { case LDAP_SUCCESS: case LDAP_REFERRAL: break; @@ -399,8 +399,7 @@ nsdb_old_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn, default: xlog(D_GENERAL, "%s: Failed to retrieve naming_context " "entry %s: %s", __func__, naming_context, - ldap_err2string(rc)); - *ldap_err = rc; + ldap_err2string(host->fn_ldaperr)); return FEDFS_ERR_NSDB_LDAP_VAL; } if (response == NULL) { @@ -428,7 +427,7 @@ nsdb_old_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn, case LDAP_RES_SEARCH_RESULT: retval = nsdb_parse_result(ld, message, &host->fn_referrals, - ldap_err); + &host->fn_ldaperr); break; default: xlog(L_ERROR, "%s: Unrecognized LDAP message type", @@ -500,7 +499,6 @@ out: * @param host an initialized and bound nsdb_t object * @param naming_context NUL-terminated C string containing one naming context * @param dn OUT: pointer to a NUL-terminated C string containing full DN of NSDB container - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code * * Caller must free "dn" with free(3) @@ -515,19 +513,19 @@ out: * The full DN for the NSDB container entry is returned in "dn." */ static FedFsStatus -nsdb_new_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn, - unsigned int *ldap_err) +nsdb_new_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn) { LDAPMessage *response, *message; LDAP *ld = host->fn_ldap; FedFsStatus retval; - int rc, entries; unsigned count; + int entries; - rc = nsdb_search_nsdb_all_s(ld, naming_context, LDAP_SCOPE_SUBTREE, + host->fn_ldaperr = nsdb_search_nsdb_all_s(ld, naming_context, + LDAP_SCOPE_SUBTREE, "(objectClass=fedfsNsdbContainerEntry)", &response); - switch (rc) { + switch (host->fn_ldaperr) { case LDAP_SUCCESS: case LDAP_REFERRAL: break; @@ -538,8 +536,7 @@ nsdb_new_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn, default: xlog(D_GENERAL, "%s: Failed to retrieve naming_context " "entry %s: %s", __func__, naming_context, - ldap_err2string(rc)); - *ldap_err = rc; + ldap_err2string(host->fn_ldaperr)); return FEDFS_ERR_NSDB_LDAP_VAL; } if (response == NULL) { @@ -575,7 +572,7 @@ nsdb_new_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn, case LDAP_RES_SEARCH_RESULT: retval = nsdb_parse_result(ld, message, &host->fn_referrals, - ldap_err); + &host->fn_ldaperr); break; default: xlog(L_ERROR, "%s: Unrecognized LDAP message type", @@ -595,14 +592,12 @@ out: * @param host an initialized and bound nsdb_t object * @param naming_context NUL-terminated C string containing one naming context * @param dn OUT: pointer to a NUL-terminated C string containing full DN of NSDB container - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code * * Caller must free "dn" with free(3) */ FedFsStatus -nsdb_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn, - unsigned int *ldap_err) +nsdb_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn) { FedFsStatus retval; @@ -616,15 +611,14 @@ nsdb_get_ncedn_s(nsdb_t host, const char *naming_context, char **dn, return FEDFS_ERR_INVAL; } - if (dn == NULL || ldap_err == NULL) { + if (dn == NULL) { xlog(L_ERROR, "%s: Invalid parameter", __func__); return FEDFS_ERR_INVAL; } - retval = nsdb_new_get_ncedn_s(host, naming_context, dn, ldap_err); + retval = nsdb_new_get_ncedn_s(host, naming_context, dn); if (retval != FEDFS_OK) - retval = nsdb_old_get_ncedn_s(host, naming_context, - dn, ldap_err); + retval = nsdb_old_get_ncedn_s(host, naming_context, dn); return retval; } @@ -1333,8 +1327,7 @@ nsdb_resolve_fsn_s(nsdb_t host, const char *nce, const char *fsn_uuid, * Query only naming contexts that have an NCE prefix */ for (i = 0, j = 0; contexts[i] != NULL; i++) { - retval = nsdb_get_ncedn_s(host, contexts[i], - &nce_list[j], ldap_err); + retval = nsdb_get_ncedn_s(host, contexts[i], &nce_list[j]); if (retval == FEDFS_OK) j++; } @@ -1649,8 +1642,7 @@ nsdb_get_fsn_s(nsdb_t host, const char *nce, const char *fsn_uuid, * Query only naming contexts that have an NCE prefix */ for (i = 0, j = 0; contexts[i] != NULL; i++) { - retval = nsdb_get_ncedn_s(host, contexts[i], - &nce_list[j], ldap_err); + retval = nsdb_get_ncedn_s(host, contexts[i], &nce_list[j]); if (retval == FEDFS_OK) j++; } @@ -1908,8 +1900,7 @@ nsdb_list_s(nsdb_t host, const char *nce, char ***fsns, unsigned int *ldap_err) * List only naming contexts that have an NCE prefix */ for (i = 0, j = 0; contexts[i] != NULL; i++) { - retval = nsdb_get_ncedn_s(host, contexts[i], - &nce_list[j], ldap_err); + retval = nsdb_get_ncedn_s(host, contexts[i], &nce_list[j]); if (retval == FEDFS_OK) j++; } @@ -1943,23 +1934,22 @@ out: static FedFsStatus nsdb_ping_contexts_s(nsdb_t host, char **contexts, unsigned int *ldap_err) { - unsigned int ldap_result; FedFsStatus retval; char *dn; int i; retval = FEDFS_ERR_NSDB_RESPONSE; for (i = 0; contexts[i] != NULL; i++) { - retval = nsdb_get_ncedn_s(host, contexts[i], &dn, &ldap_result); + retval = nsdb_get_ncedn_s(host, contexts[i], &dn); switch (retval) { case FEDFS_OK: free(dn); goto out; case FEDFS_ERR_NSDB_LDAP_VAL: - if (ldap_result == LDAP_CONFIDENTIALITY_REQUIRED) + if (nsdb_ldaperr(host) == LDAP_CONFIDENTIALITY_REQUIRED) retval = FEDFS_ERR_NSDB_AUTH; else - *ldap_err = ldap_result; + *ldap_err = (unsigned int)nsdb_ldaperr(host); goto out; default: retval = FEDFS_ERR_NSDB_NONCE; diff --git a/src/nsdbc/nsdb-list.c b/src/nsdbc/nsdb-list.c index 5cc20a7..68a8d89 100644 --- a/src/nsdbc/nsdb-list.c +++ b/src/nsdbc/nsdb-list.c @@ -216,7 +216,7 @@ nsdb_list_display_all_nces(nsdb_t host, unsigned int *ldap_err) retval = FEDFS_ERR_NSDB_NONCE; for (i = 0; contexts[i] != NULL; i++) { - retval = nsdb_get_ncedn_s(host, contexts[i], &dn, ldap_err); + retval = nsdb_get_ncedn_s(host, contexts[i], &dn); if (retval == FEDFS_OK) { retval = nsdb_list_display_one_nce(host, dn, ldap_err); free(dn); diff --git a/src/nsdbc/nsdb-nces.c b/src/nsdbc/nsdb-nces.c index f7b405c..1e3caf1 100644 --- a/src/nsdbc/nsdb-nces.c +++ b/src/nsdbc/nsdb-nces.c @@ -219,7 +219,7 @@ main(int argc, char **argv) for (i = 0; contexts[i] != NULL; i++) { char *dn; - retval = nsdb_get_ncedn_s(host, contexts[i], &dn, &ldap_err); + retval = nsdb_get_ncedn_s(host, contexts[i], &dn); printf(" namingContext '%s' ", contexts[i]); if (retval == FEDFS_OK) { printf("hosts an NCE at '%s'.\n", dn); _______________________________________________ fedfs-utils-devel mailing list [email protected] https://oss.oracle.com/mailman/listinfo/fedfs-utils-devel
