summaryrefslogtreecommitdiffstats
path: root/src/providers/ldap/sdap_async.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/providers/ldap/sdap_async.c')
-rw-r--r--src/providers/ldap/sdap_async.c17
1 files changed, 12 insertions, 5 deletions
diff --git a/src/providers/ldap/sdap_async.c b/src/providers/ldap/sdap_async.c
index e183855a2..3b2849876 100644
--- a/src/providers/ldap/sdap_async.c
+++ b/src/providers/ldap/sdap_async.c
@@ -615,15 +615,22 @@ int sdap_exop_modify_passwd_recv(struct tevent_req *req,
struct sdap_exop_modify_passwd_state *state = tevent_req_data(req,
struct sdap_exop_modify_passwd_state);
- *result = SDAP_ERROR;
*user_error_message = talloc_steal(mem_ctx, state->user_error_message);
- TEVENT_REQ_RETURN_ON_ERROR(req);
-
- if (state->result == LDAP_SUCCESS) {
- *result = SDAP_SUCCESS;
+ switch (state->result) {
+ case LDAP_SUCCESS:
+ *result = SDAP_SUCCESS;
+ break;
+ case LDAP_CONSTRAINT_VIOLATION:
+ *result = SDAP_AUTH_PW_CONSTRAINT_VIOLATION;
+ break;
+ default:
+ *result = SDAP_ERROR;
+ break;
}
+ TEVENT_REQ_RETURN_ON_ERROR(req);
+
return EOK;
}