From patchwork Thu Jan 24 18:35:04 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chuck Lever X-Patchwork-Id: 215476 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)) (Client CN "aserp1040.oracle.com", Issuer "VeriSign Class 3 International Server CA - G3" (not verified)) by ozlabs.org (Postfix) with ESMTPS id EDAC62C009C for ; Fri, 25 Jan 2013 05:38:34 +1100 (EST) Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by aserp1040.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id r0OIcVsj020272 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 24 Jan 2013 18:38:31 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 r0OIcUl9010193 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 24 Jan 2013 18:38:31 GMT Received: from localhost ([127.0.0.1] helo=oss.oracle.com) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1TyRdx-0000PQ-N8; Thu, 24 Jan 2013 10:35:21 -0800 Received: from acsinet22.oracle.com ([141.146.126.238]) by oss.oracle.com with esmtp (Exim 4.63) (envelope-from ) id 1TyRdj-0000On-Dm for fedfs-utils-devel@oss.oracle.com; Thu, 24 Jan 2013 10:35:07 -0800 Received: from aserp1030.oracle.com (aserp1030.oracle.com [141.146.126.68]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r0OIZ734017364 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Thu, 24 Jan 2013 18:35:07 GMT Received: from mail-ob0-f173.google.com (mail-ob0-f173.google.com [209.85.214.173]) by aserp1030.oracle.com (Sentrion-MTA-4.2.2/Sentrion-MTA-4.2.2) with ESMTP id r0OIZ6at004131 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=OK) for ; Thu, 24 Jan 2013 18:35:06 GMT Received: by mail-ob0-f173.google.com with SMTP id dn14so2983274obc.32 for ; Thu, 24 Jan 2013 10:35:06 -0800 (PST) X-Received: by 10.50.216.229 with SMTP id ot5mr2166229igc.76.1359052506238; Thu, 24 Jan 2013 10:35:06 -0800 (PST) Received: from seurat.1015granger.net ([99.26.161.222]) by mx.google.com with ESMTPS id bg10sm1681180igc.6.2013.01.24.10.35.05 (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 24 Jan 2013 10:35:05 -0800 (PST) From: Chuck Lever To: fedfs-utils-devel@oss.oracle.com Date: Thu, 24 Jan 2013 13:35:04 -0500 Message-ID: <20130124183504.13601.22791.stgit@seurat.1015granger.net> In-Reply-To: <20130124182619.13601.61251.stgit@seurat.1015granger.net> References: <20130124182619.13601.61251.stgit@seurat.1015granger.net> User-Agent: StGIT/0.14.3 MIME-Version: 1.0 X-Flow-Control-Info: class=Default reputation=ipRepBelow100 ip=209.85.214.173 ct-class=R6 ct-vol1=0 ct-vol2=0 ct-vol3=0 ct-risk=68 ct-spam1=0 ct-spam2=0 ct-bulk=0 rcpts=1 size=12737 X-MM-CT-Classification: not spam X-MM-CT-RefID: str=0001.0A090201.51017EDA.00D7,ss=1,re=-2.300,fgs=0 Subject: [fedfs-utils] [PATCH 04/11] nsdbc: Report bind password problems correctly 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] nsdb_open_nsdb() reports that a bind password is not working by returning FEDFS_ERR_NSDB_LDAP_VAL with ldap_err = LDAP_INVALID_CREDENTIALS. Have NSDB clients display a specific and helpful error message in this case. Signed-off-by: Chuck Lever --- src/nfsref/add.c | 12 ++++++++++-- src/nfsref/remove.c | 13 ++++++++++--- src/nsdbc/nsdb-annotate.c | 11 +++++++++-- src/nsdbc/nsdb-create-fsl.c | 11 +++++++++-- src/nsdbc/nsdb-create-fsn.c | 11 +++++++++-- src/nsdbc/nsdb-delete-fsl.c | 11 +++++++++-- src/nsdbc/nsdb-delete-fsn.c | 11 +++++++++-- src/nsdbc/nsdb-delete-nsdb.c | 11 +++++++++-- src/nsdbc/nsdb-describe.c | 11 +++++++++-- src/nsdbc/nsdb-list.c | 2 +- src/nsdbc/nsdb-nces.c | 2 +- src/nsdbc/nsdb-remove-nci.c | 11 +++++++++-- src/nsdbc/nsdb-resolve-fsn.c | 2 +- src/nsdbc/nsdb-simple-nce.c | 11 +++++++++-- src/nsdbc/nsdb-update-fsl.c | 11 +++++++++-- src/nsdbc/nsdb-update-nci.c | 11 +++++++++-- 16 files changed, 122 insertions(+), 30 deletions(-) diff --git a/src/nfsref/add.c b/src/nfsref/add.c index c99e2a1..5bac936 100644 --- a/src/nfsref/add.c +++ b/src/nfsref/add.c @@ -616,8 +616,16 @@ nfsref_add_nfs_fedfs(const char *junct_path, char **argv, int optind) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - xlog(L_ERROR, "Failed to authenticate to NSDB %s:%u: %s", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + xlog(L_ERROR, "Incorrect password for DN %s", + binddn); + break; + default: + xlog(L_ERROR, "Failed to bind to NSDB %s:%u: %s", + nsdbname, nsdbport, + ldap_err2string(ldap_err)); + } goto out_free; default: xlog(L_ERROR, "Failed to bind to NSDB %s:%u: %s", diff --git a/src/nfsref/remove.c b/src/nfsref/remove.c index c40d6dc..aebd284 100644 --- a/src/nfsref/remove.c +++ b/src/nfsref/remove.c @@ -191,9 +191,16 @@ nfsref_remove_delete_fsn(const char *junct_path) nsdb_hostname(host), nsdb_port(host)); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - xlog(L_ERROR, "Failed to authenticate to NSDB %s:%u: %s", - nsdb_hostname(host), nsdb_port(host), - ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + xlog(L_ERROR, "Incorrect password for DN %s", + binddn); + break; + default: + xlog(L_ERROR, "Failed to bind to NSDB %s:%u: %s", + nsdb_hostname(host), nsdb_port(host), + ldap_err2string(ldap_err)); + } goto out_free; default: xlog(L_ERROR, "Failed to bind to NSDB %s:%u: %s", diff --git a/src/nsdbc/nsdb-annotate.c b/src/nsdbc/nsdb-annotate.c index bd8d6c4..145f857 100644 --- a/src/nsdbc/nsdb-annotate.c +++ b/src/nsdbc/nsdb-annotate.c @@ -266,8 +266,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-create-fsl.c b/src/nsdbc/nsdb-create-fsl.c index 4089193..9fb65fc 100644 --- a/src/nsdbc/nsdb-create-fsl.c +++ b/src/nsdbc/nsdb-create-fsl.c @@ -269,8 +269,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-create-fsn.c b/src/nsdbc/nsdb-create-fsn.c index 655f0c6..551f47e 100644 --- a/src/nsdbc/nsdb-create-fsn.c +++ b/src/nsdbc/nsdb-create-fsn.c @@ -246,8 +246,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-delete-fsl.c b/src/nsdbc/nsdb-delete-fsl.c index 1c45da4..36d7ae6 100644 --- a/src/nsdbc/nsdb-delete-fsl.c +++ b/src/nsdbc/nsdb-delete-fsl.c @@ -228,8 +228,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-delete-fsn.c b/src/nsdbc/nsdb-delete-fsn.c index af06a89..d2ba0f7 100644 --- a/src/nsdbc/nsdb-delete-fsn.c +++ b/src/nsdbc/nsdb-delete-fsn.c @@ -230,8 +230,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-delete-nsdb.c b/src/nsdbc/nsdb-delete-nsdb.c index b959057..8c80ab1 100644 --- a/src/nsdbc/nsdb-delete-nsdb.c +++ b/src/nsdbc/nsdb-delete-nsdb.c @@ -203,8 +203,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-describe.c b/src/nsdbc/nsdb-describe.c index 4480786..20a841d 100644 --- a/src/nsdbc/nsdb-describe.c +++ b/src/nsdbc/nsdb-describe.c @@ -223,8 +223,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-list.c b/src/nsdbc/nsdb-list.c index 50581a4..954d0d5 100644 --- a/src/nsdbc/nsdb-list.c +++ b/src/nsdbc/nsdb-list.c @@ -293,7 +293,7 @@ again: nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", nsdbname, nsdbport, ldap_err2string(ldap_err)); goto out_free; default: diff --git a/src/nsdbc/nsdb-nces.c b/src/nsdbc/nsdb-nces.c index a1befca..b298b79 100644 --- a/src/nsdbc/nsdb-nces.c +++ b/src/nsdbc/nsdb-nces.c @@ -185,7 +185,7 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", nsdbname, nsdbport, ldap_err2string(ldap_err)); goto out_free; default: diff --git a/src/nsdbc/nsdb-remove-nci.c b/src/nsdbc/nsdb-remove-nci.c index 71f832e..16c0dc5 100644 --- a/src/nsdbc/nsdb-remove-nci.c +++ b/src/nsdbc/nsdb-remove-nci.c @@ -198,8 +198,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-resolve-fsn.c b/src/nsdbc/nsdb-resolve-fsn.c index 80677a6..ab84c50 100644 --- a/src/nsdbc/nsdb-resolve-fsn.c +++ b/src/nsdbc/nsdb-resolve-fsn.c @@ -353,7 +353,7 @@ again: nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", nsdbname, nsdbport, ldap_err2string(ldap_err)); goto out_free; default: diff --git a/src/nsdbc/nsdb-simple-nce.c b/src/nsdbc/nsdb-simple-nce.c index dfc0cb1..47a514f 100644 --- a/src/nsdbc/nsdb-simple-nce.c +++ b/src/nsdbc/nsdb-simple-nce.c @@ -198,8 +198,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-update-fsl.c b/src/nsdbc/nsdb-update-fsl.c index d5b13cd..dab318e 100644 --- a/src/nsdbc/nsdb-update-fsl.c +++ b/src/nsdbc/nsdb-update-fsl.c @@ -239,8 +239,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", diff --git a/src/nsdbc/nsdb-update-nci.c b/src/nsdbc/nsdb-update-nci.c index 5277356..18f9f9b 100644 --- a/src/nsdbc/nsdb-update-nci.c +++ b/src/nsdbc/nsdb-update-nci.c @@ -206,8 +206,15 @@ main(int argc, char **argv) nsdbname, nsdbport); goto out_free; case FEDFS_ERR_NSDB_LDAP_VAL: - fprintf(stderr, "Failed to authenticate to NSDB %s:%u: %s\n", - nsdbname, nsdbport, ldap_err2string(ldap_err)); + switch (ldap_err) { + case LDAP_INVALID_CREDENTIALS: + fprintf(stderr, "Incorrect password for DN %s\n", + binddn); + break; + default: + fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n", + nsdbname, nsdbport, ldap_err2string(ldap_err)); + } goto out_free; default: fprintf(stderr, "Failed to bind to NSDB %s:%u: %s\n",