summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap/sdap_async.c
diff options
context:
space:
mode:
authorPavel Březina <pbrezina@redhat.com>2013-07-15 13:44:31 +0200
committerJakub Hrozek <jhrozek@redhat.com>2013-08-11 22:45:55 +0200
commit658e2757fa9559f5dff6d475ae50496429e3d89f (patch)
treec7faada09418c6d2c60abb2c4599ac6b6ade9610 /src/providers/ldap/sdap_async.c
parentf4f0a4c2af6e1b7bb47a3f312718910efff731cf (diff)
downloadsssd-658e2757fa9559f5dff6d475ae50496429e3d89f.tar.gz
sssd-658e2757fa9559f5dff6d475ae50496429e3d89f.tar.xz
sssd-658e2757fa9559f5dff6d475ae50496429e3d89f.zip
print hint about password complexity when new password is rejected
https://fedorahosted.org/sssd/ticket/1827
Diffstat (limited to 'src/providers/ldap/sdap_async.c')
-rw-r--r--src/providers/ldap/sdap_async.c16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/providers/ldap/sdap_async.c b/src/providers/ldap/sdap_async.c
index 73b2b64af..32763d2e6 100644
--- a/src/providers/ldap/sdap_async.c
+++ b/src/providers/ldap/sdap_async.c
@@ -641,7 +641,21 @@ static void sdap_exop_modify_passwd_done(struct sdap_op *op,
DEBUG(3, ("ldap_extended_operation result: %s(%d), %s\n",
sss_ldap_err2string(state->result), state->result, errmsg));
- if (state->result != LDAP_SUCCESS) {
+ switch (state->result) {
+ case LDAP_SUCCESS:
+ ret = EOK;
+ break;
+ case LDAP_CONSTRAINT_VIOLATION:
+ state->user_error_message = talloc_strdup(state,
+ "Please make sure the password meets the complexity constraints.");
+ if (state->user_error_message == NULL) {
+ DEBUG(SSSDBG_CRIT_FAILURE, ("talloc_strdup failed\n"));
+ ret = ENOMEM;
+ goto done;
+ }
+ ret = EIO;
+ goto done;
+ default:
if (errmsg) {
state->user_error_message = talloc_strdup(state, errmsg);
if (state->user_error_message == NULL) {