diff options
Diffstat (limited to 'server/providers')
-rw-r--r-- | server/providers/ldap_be.c | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/server/providers/ldap_be.c b/server/providers/ldap_be.c index 2c075bd0..e6547025 100644 --- a/server/providers/ldap_be.c +++ b/server/providers/ldap_be.c @@ -456,6 +456,23 @@ static void sdap_pam_loop(struct tevent_context *ev, struct tevent_fd *te, } } while( (msg=ldap_next_message(lr->ldap, msg)) != NULL ); + switch (lr->pd->cmd) { + case SSS_PAM_AUTHENTICATE: + case SSS_PAM_CHAUTHTOK: + break; + case SSS_PAM_ACCT_MGMT: + case SSS_PAM_SETCRED: + case SSS_PAM_OPEN_SESSION: + case SSS_PAM_CLOSE_SESSION: + pam_status = PAM_SUCCESS; + goto done; + break; + default: + DEBUG(1, ("Unknown pam command %d.\n", lr->pd->cmd)); + pam_status = PAM_SYSTEM_ERR; + goto done; + } + ret = sdap_bind(lr); if (ret != LDAP_SUCCESS) { DEBUG(1, ("sdap_bind failed.\n")); |