diff options
Diffstat (limited to 'server/responder/pam')
-rw-r--r-- | server/responder/pam/pamsrv_cmd.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/server/responder/pam/pamsrv_cmd.c b/server/responder/pam/pamsrv_cmd.c index 4c7bf1f6..6d3f8991 100644 --- a/server/responder/pam/pamsrv_cmd.c +++ b/server/responder/pam/pamsrv_cmd.c @@ -172,6 +172,16 @@ static void pam_reply(struct pam_auth_req *preq) } } +/* TODO: we need the pam session cookie here to make sure that cached + * authentication was successful */ + if ((pd->cmd == SSS_PAM_SETCRED || pd->cmd == SSS_PAM_ACCT_MGMT || + pd->cmd == SSS_PAM_OPEN_SESSION || pd->cmd == SSS_PAM_CLOSE_SESSION) && + pd->pam_status == PAM_AUTHINFO_UNAVAIL) { + DEBUG(2, ("Assuming offline authentication " + "setting status for pam call %d to PAM_SUCCESS.\n", pd->cmd)); + pd->pam_status = PAM_SUCCESS; + } + cctx = preq->cctx; if (pd->response_delay > 0) { |