Clean up: Have the functions in ldap.c return LDAP errors as signed integers, matching the return value type of the LDAP client API.
For the moment, compilation will throw a bunch of warnings, but we will get to that presently. Signed-off-by: Chuck Lever <[email protected]> --- src/libnsdb/ldap.c | 46 ++++++++++++++++++------------------------- src/libnsdb/nsdb-internal.h | 22 ++++++++++----------- 2 files changed, 30 insertions(+), 38 deletions(-) diff --git a/src/libnsdb/ldap.c b/src/libnsdb/ldap.c index 0c00bff..57fbf4a 100644 --- a/src/libnsdb/ldap.c +++ b/src/libnsdb/ldap.c @@ -97,11 +97,10 @@ nsdb_printable_ldap_mod_op(int op) */ static int __nsdb_modify_nsdb_s(const char *func, LDAP *ld, const char *dn, LDAPMod *mod, - unsigned int *ldap_err) + int *ldap_err) { char *uri, *attribute = mod->mod_type; LDAPMod *mods[] = { mod, NULL }; - int rc; if (ldap_get_option(ld, LDAP_OPT_URI, &uri) == LDAP_OPT_SUCCESS) { xlog(D_CALL, "%s: modifying %s (%s) at %s", @@ -111,12 +110,11 @@ __nsdb_modify_nsdb_s(const char *func, LDAP *ld, const char *dn, LDAPMod *mod, xlog(D_CALL, "%s: modifying %s (%s)", func, dn, attribute); - rc = ldap_modify_ext_s(ld, dn, mods, NULL, NULL); - if (rc != LDAP_SUCCESS) { + *ldap_err = ldap_modify_ext_s(ld, dn, mods, NULL, NULL); + if (*ldap_err != LDAP_SUCCESS) { xlog(D_GENERAL, "%s: failed to %s attribute %s: %s", func, nsdb_printable_ldap_mod_op(mod->mod_op), - attribute, ldap_err2string(rc)); - *ldap_err = (unsigned int)rc; + attribute, ldap_err2string(*ldap_err)); return FEDFS_ERR_NSDB_LDAP_VAL; } return FEDFS_OK; @@ -462,7 +460,7 @@ nsdb_parse_multivalue_str(char *attr, struct berval **values, char ***result) */ FedFsStatus nsdb_open(const char *hostname, const unsigned short port, LDAP **ld, - unsigned int *ldap_err) + int *ldap_err) { int ldap_version, rc; LDAPURLDesc url; @@ -548,7 +546,7 @@ out_ldap_err: */ FedFsStatus nsdb_bind(LDAP *ld, const char *binddn, const char *passwd, - unsigned int *ldap_err) + int *ldap_err) { char *secret = (char *)passwd; struct berval cred; @@ -588,7 +586,7 @@ nsdb_bind(LDAP *ld, const char *binddn, const char *passwd, * @return a FedFsStatus code */ FedFsStatus -nsdb_start_tls(LDAP *ld, const char *certfile, unsigned int *ldap_err) +nsdb_start_tls(LDAP *ld, const char *certfile, int *ldap_err) { int value, rc; char *uri; @@ -668,7 +666,7 @@ out_ldap_err: FedFsStatus nsdb_add_attribute_s(LDAP *ld, const char *dn, const char *attribute, struct berval *value, - unsigned int *ldap_err) + int *ldap_err) { struct berval *attrvals[] = { value, NULL }; LDAPMod mod = { @@ -705,7 +703,7 @@ nsdb_add_attribute_s(LDAP *ld, const char *dn, */ FedFsStatus nsdb_modify_attribute_s(LDAP *ld, const char *dn, const char *attribute, - struct berval *value, unsigned int *ldap_err) + struct berval *value, int *ldap_err) { struct berval *attrvals[] = { value, NULL }; LDAPMod mod = { @@ -745,7 +743,7 @@ nsdb_modify_attribute_s(LDAP *ld, const char *dn, const char *attribute, */ FedFsStatus nsdb_delete_attribute_s(LDAP *ld, const char *dn, const char *attribute, - struct berval *value, unsigned int *ldap_err) + struct berval *value, int *ldap_err) { struct berval *attrvals[] = { value, NULL }; LDAPMod mod = { @@ -787,7 +785,7 @@ nsdb_delete_attribute_s(LDAP *ld, const char *dn, const char *attribute, */ FedFsStatus nsdb_delete_attribute_all_s(LDAP *ld, const char *dn, - const char *attribute, unsigned int *ldap_err) + const char *attribute, int *ldap_err) { LDAPMod mod = { .mod_op = LDAP_MOD_DELETE, @@ -853,24 +851,18 @@ nsdb_copy_referrals_array(char **refs, char ***referrals) */ FedFsStatus nsdb_parse_result(LDAP *ld, LDAPMessage *result, char ***referrals, - unsigned int *ldap_err) + int *ldap_err) { char *matched_dn = NULL, *error_msg = NULL; - int rc, result_code; char **refs = NULL; FedFsStatus retval; + int result_code; - if (ld == NULL || result == NULL || ldap_err == NULL) { - xlog(L_ERROR, "%s: Invalid parameter", __func__); - return FEDFS_ERR_INVAL; - } - - rc = ldap_parse_result(ld, result, &result_code, + *ldap_err = ldap_parse_result(ld, result, &result_code, &matched_dn, &error_msg, &refs, NULL, 0); - if (rc != LDAP_SUCCESS) { + if (*ldap_err != LDAP_SUCCESS) { xlog(D_GENERAL, "%s: Failed to parse result: %s", - __func__, ldap_err2string(rc)); - *ldap_err = rc; + __func__, ldap_err2string(*ldap_err)); return FEDFS_ERR_NSDB_LDAP_VAL; } @@ -1002,7 +994,7 @@ nsdb_compare_dns(LDAPDN dn1, LDAPDN dn2) */ _Bool nsdb_compare_dn_string(LDAPDN dn1, const char *dn2_in, - unsigned int *ldap_err) + int *ldap_err) { LDAPDN dn2 = NULL; _Bool result; @@ -1042,7 +1034,7 @@ out: */ _Bool nsdb_compare_dn_strings(const char *dn1_in, const char *dn2_in, - unsigned int *ldap_err) + int *ldap_err) { LDAPDN dn1 = NULL; LDAPDN dn2 = NULL; @@ -1114,7 +1106,7 @@ nsdb_ends_with(LDAPDN dn, LDAPDN suffix) */ _Bool nsdb_dn_ends_with(const char *dn_in, const char *suffix_in, - unsigned int *ldap_err) + int *ldap_err) { LDAPDN dn = NULL; LDAPDN suffix = NULL; diff --git a/src/libnsdb/nsdb-internal.h b/src/libnsdb/nsdb-internal.h index a152524..9875fd4 100644 --- a/src/libnsdb/nsdb-internal.h +++ b/src/libnsdb/nsdb-internal.h @@ -78,38 +78,38 @@ FedFsStatus nsdb_parse_multivalue_str(char *attr, FedFsStatus nsdb_open(const char *hostname, const unsigned short port, LDAP **ld, - unsigned int *ldap_err); + int *ldap_err); FedFsStatus nsdb_bind(LDAP *ld, const char *binddn, const char *passwd, - unsigned int *ldap_err); + int *ldap_err); FedFsStatus nsdb_start_tls(LDAP *ld, const char *certfile, - unsigned int *ldap_err); + int *ldap_err); FedFsStatus nsdb_add_attribute_s(LDAP *ld, const char *dn, const char *attribute, struct berval *value, - unsigned int *ldap_err); + int *ldap_err); FedFsStatus nsdb_modify_attribute_s(LDAP *ld, const char *dn, const char *attribute, struct berval *value, - unsigned int *ldap_err); + int *ldap_err); FedFsStatus nsdb_delete_attribute_s(LDAP *ld, const char *dn, const char *attribute, struct berval *value, - unsigned int *ldap_err); + int *ldap_err); FedFsStatus nsdb_delete_attribute_all_s(LDAP *ld, const char *dn, const char *attribute, - unsigned int *ldap_err); + int *ldap_err); FedFsStatus nsdb_parse_result(LDAP *ld, LDAPMessage *result, - char ***referrals, unsigned int *ldap_err); + char ***referrals, int *ldap_err); _Bool nsdb_compare_dns(LDAPDN dn1, LDAPDN dn2); _Bool nsdb_compare_dn_string(LDAPDN dn1, const char *dn2_in, - unsigned int *ldap_err); + int *ldap_err); _Bool nsdb_compare_dn_strings(const char *dn1_in, const char *dn2_in, - unsigned int *ldap_err); + int *ldap_err); _Bool nsdb_dn_ends_with(const char *dn_in, const char *suffix_in, - unsigned int *ldap_err); + int *ldap_err); /** _______________________________________________ fedfs-utils-devel mailing list [email protected] https://oss.oracle.com/mailman/listinfo/fedfs-utils-devel
