Simplify the libnsdb APIs that update fedfsDescr and fedfsAnnotation attributes 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 <[email protected]> --- src/include/nsdb.h | 8 ++++--- src/libnsdb/administrator.c | 48 +++++++++++++------------------------------ src/nsdbc/nsdb-annotate.c | 14 ++++--------- src/nsdbc/nsdb-describe.c | 11 ++++------ 4 files changed, 28 insertions(+), 53 deletions(-) diff --git a/src/include/nsdb.h b/src/include/nsdb.h index ea765f7..7fec490 100644 --- a/src/include/nsdb.h +++ b/src/include/nsdb.h @@ -357,17 +357,17 @@ FedFsStatus nsdb_delete_nsdb_s(nsdb_t host, const char *nce, * Display or alter an object's fedfsDescription attribute */ FedFsStatus nsdb_description_add_s(nsdb_t host, const char *dn, - const char *description, unsigned int *ldap_err); + const char *description); FedFsStatus nsdb_description_delete_s(nsdb_t host, const char *dn, - const char *description, unsigned int *ldap_err); + const char *description); /** * Display or alter an object's fedfsAnnotation attribute */ FedFsStatus nsdb_annotation_add_s(nsdb_t host, const char *dn, - const char *annotation, unsigned int *ldap_err); + const char *annotation); FedFsStatus nsdb_annotation_delete_s(nsdb_t host, const char *dn, - const char *annotation, unsigned int *ldap_err); + const char *annotation); /** ** NSDB file server operations defined in the diff --git a/src/libnsdb/administrator.c b/src/libnsdb/administrator.c index 8092cce..0b2a3eb 100644 --- a/src/libnsdb/administrator.c +++ b/src/libnsdb/administrator.c @@ -1810,7 +1810,6 @@ nsdb_delete_nsdb_s(nsdb_t host, const char *nce, unsigned int *ldap_err) * @param dn a NUL-terminated C string containing DN of entry to modify * @param attr a NUL-terminated C string containing attribute to modify * @param value a NUL-terminated UTF-8 C string containing new value of attribute - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code * * LDIF equivalent: @@ -1825,7 +1824,7 @@ nsdb_delete_nsdb_s(nsdb_t host, const char *nce, unsigned int *ldap_err) */ static FedFsStatus nsdb_attr_add_s(nsdb_t host, const char *dn, const char *attr, - const char *value, unsigned int *ldap_err) + const char *value) { struct berval bval; @@ -1839,17 +1838,13 @@ nsdb_attr_add_s(nsdb_t host, const char *dn, const char *attr, return FEDFS_ERR_INVAL; } - if (ldap_err == NULL) { - xlog(L_ERROR, "%s: Invalid parameter", __func__); - return FEDFS_ERR_INVAL; - } - if (value == NULL) return FEDFS_ERR_INVAL; bval.bv_val = (char *)value; bval.bv_len = (ber_len_t)strlen(value); - return nsdb_add_attribute_s(host->fn_ldap, dn, attr, &bval, ldap_err); + return nsdb_add_attribute_s(host->fn_ldap, dn, attr, &bval, + &host->fn_ldaperr); } /** @@ -1859,7 +1854,6 @@ nsdb_attr_add_s(nsdb_t host, const char *dn, const char *attr, * @param dn a NUL-terminated C string containing DN of entry to modify * @param attr a NUL-terminated C string containing attribute to modify * @param value a NUL-terminated UTF-8 C string containing existing value of attribute - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code * * "value" must exactly match a value contained by the target attribute. @@ -1878,7 +1872,7 @@ nsdb_attr_add_s(nsdb_t host, const char *dn, const char *attr, */ static FedFsStatus nsdb_attr_delete_s(nsdb_t host, const char *dn, const char *attr, - const char *value, unsigned int *ldap_err) + const char *value) { struct berval bval; @@ -1892,18 +1886,14 @@ nsdb_attr_delete_s(nsdb_t host, const char *dn, const char *attr, return FEDFS_ERR_INVAL; } - if (ldap_err == NULL) { - xlog(L_ERROR, "%s: Invalid parameter", __func__); - return FEDFS_ERR_INVAL; - } - if (value == NULL) return nsdb_delete_attribute_all_s(host->fn_ldap, dn, - attr, ldap_err); + attr, &host->fn_ldaperr); bval.bv_val = (char *)value; bval.bv_len = (ber_len_t)strlen(value); - return nsdb_delete_attribute_s(host->fn_ldap, dn, attr, &bval, ldap_err); + return nsdb_delete_attribute_s(host->fn_ldap, dn, attr, + &bval, &host->fn_ldaperr); } /** @@ -1912,15 +1902,13 @@ nsdb_attr_delete_s(nsdb_t host, const char *dn, const char *attr, * @param host an initialized and bound nsdb_t object * @param dn a NUL-terminated C string containing DN of entry to modify * @param annotation a NUL-terminated UTF-8 C string containing new value of fedfsAnnotation attribute - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code */ FedFsStatus nsdb_annotation_add_s(nsdb_t host, const char *dn, - const char *annotation, unsigned int *ldap_err) + const char *annotation) { - return nsdb_attr_add_s(host, dn, "fedfsAnnotation", - annotation, ldap_err); + return nsdb_attr_add_s(host, dn, "fedfsAnnotation", annotation); } /** @@ -1929,7 +1917,6 @@ nsdb_annotation_add_s(nsdb_t host, const char *dn, * @param host an initialized and bound nsdb_t object * @param dn a NUL-terminated C string containing DN of entry to modify * @param annotation a NUL-terminated UTF-8 C string containing existing value of fedfsAnnotation attribute - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code * * The annotation must exactly match a value contained by the fedfsAnnotation @@ -1940,10 +1927,9 @@ nsdb_annotation_add_s(nsdb_t host, const char *dn, */ FedFsStatus nsdb_annotation_delete_s(nsdb_t host, const char *dn, - const char *annotation, unsigned int *ldap_err) + const char *annotation) { - return nsdb_attr_delete_s(host, dn, "fedfsAnnotation", - annotation, ldap_err); + return nsdb_attr_delete_s(host, dn, "fedfsAnnotation", annotation); } /** @@ -1952,14 +1938,12 @@ nsdb_annotation_delete_s(nsdb_t host, const char *dn, * @param host an initialized and bound nsdb_t object * @param dn a NUL-terminated C string containing DN of entry to modify * @param description a NUL-terminated UTF-8 C string containing new value of fedfsDescr attribute - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code */ FedFsStatus -nsdb_description_add_s(nsdb_t host, const char *dn, const char *description, - unsigned int *ldap_err) +nsdb_description_add_s(nsdb_t host, const char *dn, const char *description) { - return nsdb_attr_add_s(host, dn, "fedfsDescr", description, ldap_err); + return nsdb_attr_add_s(host, dn, "fedfsDescr", description); } /** @@ -1968,7 +1952,6 @@ nsdb_description_add_s(nsdb_t host, const char *dn, const char *description, * @param host an initialized and bound nsdb_t object * @param dn a NUL-terminated C string containing DN of entry to modify * @param description a NUL-terminated UTF-8 C string containing existing value of fedfsDescr attribute - * @param ldap_err OUT: possibly an LDAP error code * @return a FedFsStatus code * * "description" must exactly match a value contained by the fedfsDescr @@ -1978,8 +1961,7 @@ nsdb_description_add_s(nsdb_t host, const char *dn, const char *description, * fedfsDescr attribute. */ FedFsStatus -nsdb_description_delete_s(nsdb_t host, const char *dn, const char *description, - unsigned int *ldap_err) +nsdb_description_delete_s(nsdb_t host, const char *dn, const char *description) { - return nsdb_attr_delete_s(host, dn, "fedfsDescr", description, ldap_err); + return nsdb_attr_delete_s(host, dn, "fedfsDescr", description); } diff --git a/src/nsdbc/nsdb-annotate.c b/src/nsdbc/nsdb-annotate.c index 6d10465..b3a7617 100644 --- a/src/nsdbc/nsdb-annotate.c +++ b/src/nsdbc/nsdb-annotate.c @@ -109,7 +109,6 @@ main(int argc, char **argv) char *progname, *binddn, *nsdbname; char *keyword, *value, *entry, *annotation; unsigned short nsdbport; - unsigned int ldap_err; FedFsStatus retval; _Bool delete; nsdb_t host; @@ -278,8 +277,7 @@ main(int argc, char **argv) } if (delete) - retval = nsdb_annotation_delete_s(host, entry, annotation, - &ldap_err); + retval = nsdb_annotation_delete_s(host, entry, annotation); else { if (annotation == NULL) { retval = nsdb_construct_annotation(keyword, value, @@ -290,12 +288,10 @@ main(int argc, char **argv) goto out_close; } - retval = nsdb_annotation_add_s(host, entry, - annotation, &ldap_err); + retval = nsdb_annotation_add_s(host, entry, annotation); free(annotation); } else - retval = nsdb_annotation_add_s(host, entry, - annotation, &ldap_err); + retval = nsdb_annotation_add_s(host, entry, annotation); } switch (retval) { case FEDFS_OK: @@ -304,7 +300,7 @@ main(int argc, char **argv) delete ? "from" : "for", entry); 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); @@ -320,7 +316,7 @@ main(int argc, char **argv) default: fprintf(stderr, "Failed to %s annotation \"%s\" = \"%s\": %s\n", delete ? "remove" : "update", - keyword, value, ldap_err2string(ldap_err)); + keyword, value, nsdb_ldaperr2string(host)); } break; default: diff --git a/src/nsdbc/nsdb-describe.c b/src/nsdbc/nsdb-describe.c index eca70b1..3b46dec 100644 --- a/src/nsdbc/nsdb-describe.c +++ b/src/nsdbc/nsdb-describe.c @@ -104,7 +104,6 @@ main(int argc, char **argv) char *progname, *binddn, *nsdbname; char *description, *entry; unsigned short nsdbport; - unsigned int ldap_err; FedFsStatus retval; _Bool delete; nsdb_t host; @@ -235,11 +234,9 @@ main(int argc, char **argv) } if (delete) - retval = nsdb_description_delete_s(host, entry, - description, &ldap_err); + retval = nsdb_description_delete_s(host, entry, description); else - retval = nsdb_description_add_s(host, entry, - description, &ldap_err); + retval = nsdb_description_add_s(host, entry, description); switch (retval) { case FEDFS_OK: printf("Successfully %s description value %s %s\n", @@ -247,7 +244,7 @@ main(int argc, char **argv) delete ? "from" : "for", entry); 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); @@ -266,7 +263,7 @@ main(int argc, char **argv) default: fprintf(stderr, "Failed to %s description value for %s: %s\n", delete ? "remove" : "update", entry, - ldap_err2string(ldap_err)); + nsdb_ldaperr2string(host)); } break; default: _______________________________________________ fedfs-utils-devel mailing list [email protected] https://oss.oracle.com/mailman/listinfo/fedfs-utils-devel
