[fedfs-utils] [PATCH 04/11] nsdbc: Report bind password problems correctly
Chuck Lever
chuck.lever at oracle.com
Thu Jan 24 10:35:04 PST 2013
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 <chuck.lever at oracle.com>
---
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",
More information about the fedfs-utils-devel
mailing list