summaryrefslogtreecommitdiffstats
path: root/src/util/auth_utils.h
diff options
context:
space:
mode:
authorSimo Sorce <simo@redhat.com>2012-11-21 16:52:33 -0500
committerJakub Hrozek <jhrozek@redhat.com>2013-03-04 23:40:25 +0100
commitab967283b710dfa05d11ee5b30c7ac916486ceec (patch)
tree636b0ded10d3a282cbd3c8ff88e9c94de60d26e3 /src/util/auth_utils.h
parent8bcabb97d988d1602882a1f036aac2eaf5e09234 (diff)
downloadsssd-ab967283b710dfa05d11ee5b30c7ac916486ceec.tar.gz
sssd-ab967283b710dfa05d11ee5b30c7ac916486ceec.tar.xz
sssd-ab967283b710dfa05d11ee5b30c7ac916486ceec.zip
Use SSSD specific errors for offline auth
This prevents reportin false errors when internal functions return a generic EINVAL or EACCES that should just be treated as internal errors.
Diffstat (limited to 'src/util/auth_utils.h')
-rw-r--r--src/util/auth_utils.h22
1 files changed, 12 insertions, 10 deletions
diff --git a/src/util/auth_utils.h b/src/util/auth_utils.h
index e9e60a085..8883c5ceb 100644
--- a/src/util/auth_utils.h
+++ b/src/util/auth_utils.h
@@ -28,15 +28,17 @@
static inline int cached_login_pam_status(int auth_res)
{
switch (auth_res) {
- case EOK:
- return PAM_SUCCESS;
- case ENOENT:
- return PAM_AUTHINFO_UNAVAIL;
- case EINVAL:
- return PAM_AUTH_ERR;
- case EACCES:
- return PAM_PERM_DENIED;
+ case EOK:
+ return PAM_SUCCESS;
+ case ERR_ACCOUNT_UNKNOWN:
+ return PAM_AUTHINFO_UNAVAIL;
+ case ERR_NO_CACHED_CREDS:
+ case ERR_CACHED_CREDS_EXPIRED:
+ case ERR_AUTH_DENIED:
+ return PAM_PERM_DENIED;
+ case ERR_AUTH_FAILED:
+ return PAM_AUTH_ERR;
+ default:
+ return PAM_SYSTEM_ERR;
}
-
- return PAM_SYSTEM_ERR;
}