From patchwork Thu Jan 2 20:28:35 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever III X-Patchwork-Id: 306274 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id A42C02C0095 for ; Fri, 3 Jan 2014 07:28:50 +1100 (EST) Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by aserp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id s02KSlna018150 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 2 Jan 2014 20:28:47 GMT Received: from oss.oracle.com (oss-external.oracle.com [137.254.96.51]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s02KSlK8015050 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 2 Jan 2014 20:28:47 GMT Received: from localhost ([127.0.0.1] helo=oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1Vyoso-0006nT-Uo; Thu, 02 Jan 2014 12:28:46 -0800 Received: from acsinet21.oracle.com ([141.146.126.237]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1Vyosj-0006n7-1o for fedfs-utils-devel@oss.oracle.com; Thu, 02 Jan 2014 12:28:41 -0800 Received: from userp1030.oracle.com (userp1030.oracle.com [156.151.31.80]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s02KSeH0014863 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 2 Jan 2014 20:28:40 GMT Received: from mail-yh0-f42.google.com (mail-yh0-f42.google.com [209.85.213.42]) by userp1030.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id s02KScrG012762 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Thu, 2 Jan 2014 20:28:39 GMT Received: by mail-yh0-f42.google.com with SMTP id z6so3024015yhz.1 for ; Thu, 02 Jan 2014 12:28:38 -0800 (PST) X-Received: by 10.236.135.172 with SMTP id u32mr48196yhi.107.1388694518590; Thu, 02 Jan 2014 12:28:38 -0800 (PST) Received: from seurat.1015granger.net ([2604:8800:100:81fc:20c:29ff:fe44:ec31]) by mx.google.com with ESMTPSA id z7sm14730046yha.14.2014.01.02.12.28.37 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 02 Jan 2014 12:28:38 -0800 (PST) To: fedfs-utils-devel@oss.oracle.com From: Chuck Lever Date: Thu, 02 Jan 2014 15:28:35 -0500 Message-ID: <20140102202835.2964.36028.stgit@seurat.1015granger.net> In-Reply-To: <20140102202359.2964.95143.stgit@seurat.1015granger.net> References: <20140102202359.2964.95143.stgit@seurat.1015granger.net> User-Agent: StGit/0.16 MIME-Version: 1.0 X-Flow-Control-Info: class=Pass-to-MM reputation=ipRisk-All ip=209.85.213.42 ct-class=R5 ct-vol1=-94 ct-vol2=7 ct-vol3=7 ct-risk=56 ct-spam1=94 ct-spam2=7 ct-bulk=2 rcpts=1 size=11049 X-Sendmail-CM-Score: 0.00% X-Sendmail-CM-Analysis: v=2.1 cv=E5H0+8tl c=1 sm=1 tr=0 a=MAPEx2rW0hJ+Blqc1Q/4sw==:117 a=dzsqy3y4QnMA:10 a=GVD67RsV75QA:10 a=dPGociXpb70A:10 a=IkcTkHD0fZMA:10 a=xqWC_Br6kY4A:10 a=yPCof4ZbAAAA:8 a=Lb1rMZzfAAAA:8 a=1XWaLZrsAAAA:8 a=SZpnakYFL-kA:10 a=L3ZRpBSouYkqw U8-jlAA:9 a=QEXdDO2ut3YA:10 a=7DSvI1NPTFQA:10 X-Sendmail-CT-Classification: not spam X-Sendmail-CT-RefID: str=0001.0A090207.52C5CBF7.00EB, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0 Subject: [fedfs-utils] [PATCH 12/17] libnsdb: Remove *ldaperr argument from descr and annotate APIs X-BeenThere: fedfs-utils-devel@oss.oracle.com X-Mailman-Version: 2.1.9 Precedence: list Reply-To: fedfs-utils Developers List-Id: fedfs-utils Developers List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: fedfs-utils-devel-bounces@oss.oracle.com Errors-To: fedfs-utils-devel-bounces@oss.oracle.com X-Source-IP: acsinet21.oracle.com [141.146.126.237] 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 --- 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: