Introduce an array of error strings and use it wherever applicable.
git-svn-id: svn+ssh://svn.openpam.org/svn/openpam/trunk@931 185d5e19-27fe-0310-9dcf-9bff6b9f3609
This commit is contained in:
parent
0f7f351a10
commit
29c7f93598
4 changed files with 107 additions and 130 deletions
|
@ -44,86 +44,122 @@
|
|||
#include "openpam_impl.h"
|
||||
|
||||
const char *pam_err_name[PAM_NUM_ERRORS] = {
|
||||
"PAM_SUCCESS",
|
||||
"PAM_OPEN_ERR",
|
||||
"PAM_SYMBOL_ERR",
|
||||
"PAM_SERVICE_ERR",
|
||||
"PAM_SYSTEM_ERR",
|
||||
"PAM_BUF_ERR",
|
||||
"PAM_CONV_ERR",
|
||||
"PAM_PERM_DENIED",
|
||||
"PAM_MAXTRIES",
|
||||
"PAM_AUTH_ERR",
|
||||
"PAM_NEW_AUTHTOK_REQD",
|
||||
"PAM_CRED_INSUFFICIENT",
|
||||
"PAM_AUTHINFO_UNAVAIL",
|
||||
"PAM_USER_UNKNOWN",
|
||||
"PAM_CRED_UNAVAIL",
|
||||
"PAM_CRED_EXPIRED",
|
||||
"PAM_CRED_ERR",
|
||||
"PAM_ACCT_EXPIRED",
|
||||
"PAM_AUTHTOK_EXPIRED",
|
||||
"PAM_SESSION_ERR",
|
||||
"PAM_AUTHTOK_ERR",
|
||||
"PAM_AUTHTOK_RECOVERY_ERR",
|
||||
"PAM_AUTHTOK_LOCK_BUSY",
|
||||
"PAM_AUTHTOK_DISABLE_AGING",
|
||||
"PAM_NO_MODULE_DATA",
|
||||
"PAM_IGNORE",
|
||||
"PAM_ABORT",
|
||||
"PAM_TRY_AGAIN",
|
||||
"PAM_MODULE_UNKNOWN",
|
||||
"PAM_DOMAIN_UNKNOWN"
|
||||
[PAM_SUCCESS] = "PAM_SUCCESS",
|
||||
[PAM_OPEN_ERR] = "PAM_OPEN_ERR",
|
||||
[PAM_SYMBOL_ERR] = "PAM_SYMBOL_ERR",
|
||||
[PAM_SERVICE_ERR] = "PAM_SERVICE_ERR",
|
||||
[PAM_SYSTEM_ERR] = "PAM_SYSTEM_ERR",
|
||||
[PAM_BUF_ERR] = "PAM_BUF_ERR",
|
||||
[PAM_CONV_ERR] = "PAM_CONV_ERR",
|
||||
[PAM_PERM_DENIED] = "PAM_PERM_DENIED",
|
||||
[PAM_MAXTRIES] = "PAM_MAXTRIES",
|
||||
[PAM_AUTH_ERR] = "PAM_AUTH_ERR",
|
||||
[PAM_NEW_AUTHTOK_REQD] = "PAM_NEW_AUTHTOK_REQD",
|
||||
[PAM_CRED_INSUFFICIENT] = "PAM_CRED_INSUFFICIENT",
|
||||
[PAM_AUTHINFO_UNAVAIL] = "PAM_AUTHINFO_UNAVAIL",
|
||||
[PAM_USER_UNKNOWN] = "PAM_USER_UNKNOWN",
|
||||
[PAM_CRED_UNAVAIL] = "PAM_CRED_UNAVAIL",
|
||||
[PAM_CRED_EXPIRED] = "PAM_CRED_EXPIRED",
|
||||
[PAM_CRED_ERR] = "PAM_CRED_ERR",
|
||||
[PAM_ACCT_EXPIRED] = "PAM_ACCT_EXPIRED",
|
||||
[PAM_AUTHTOK_EXPIRED] = "PAM_AUTHTOK_EXPIRED",
|
||||
[PAM_SESSION_ERR] = "PAM_SESSION_ERR",
|
||||
[PAM_AUTHTOK_ERR] = "PAM_AUTHTOK_ERR",
|
||||
[PAM_AUTHTOK_RECOVERY_ERR] = "PAM_AUTHTOK_RECOVERY_ERR",
|
||||
[PAM_AUTHTOK_LOCK_BUSY] = "PAM_AUTHTOK_LOCK_BUSY",
|
||||
[PAM_AUTHTOK_DISABLE_AGING] = "PAM_AUTHTOK_DISABLE_AGING",
|
||||
[PAM_NO_MODULE_DATA] = "PAM_NO_MODULE_DATA",
|
||||
[PAM_IGNORE] = "PAM_IGNORE",
|
||||
[PAM_ABORT] = "PAM_ABORT",
|
||||
[PAM_TRY_AGAIN] = "PAM_TRY_AGAIN",
|
||||
[PAM_MODULE_UNKNOWN] = "PAM_MODULE_UNKNOWN",
|
||||
[PAM_DOMAIN_UNKNOWN] = "PAM_DOMAIN_UNKNOWN",
|
||||
[PAM_BAD_HANDLE] = "PAM_BAD_HANDLE",
|
||||
[PAM_BAD_ITEM] = "PAM_BAD_ITEM",
|
||||
};
|
||||
|
||||
const char *pam_err_text[PAM_NUM_ERRORS] = {
|
||||
[PAM_SUCCESS] = "Success",
|
||||
[PAM_OPEN_ERR] = "Failed to load module",
|
||||
[PAM_SYMBOL_ERR] = "Invalid symbol",
|
||||
[PAM_SERVICE_ERR] = "Error in service module",
|
||||
[PAM_SYSTEM_ERR] = "System error",
|
||||
[PAM_BUF_ERR] = "Memory buffer error",
|
||||
[PAM_CONV_ERR] = "Conversation failure",
|
||||
[PAM_PERM_DENIED] = "Permission denied",
|
||||
[PAM_MAXTRIES] = "Maximum number of tries exceeded",
|
||||
[PAM_AUTH_ERR] = "Authentication error",
|
||||
[PAM_NEW_AUTHTOK_REQD] = "New authentication token required",
|
||||
[PAM_CRED_INSUFFICIENT] = "Insufficient credentials",
|
||||
[PAM_AUTHINFO_UNAVAIL] = "Authentication information is unavailable",
|
||||
[PAM_USER_UNKNOWN] = "Unknown user",
|
||||
[PAM_CRED_UNAVAIL] = "Failed to retrieve user credentials",
|
||||
[PAM_CRED_EXPIRED] = "User credentials have expired",
|
||||
[PAM_CRED_ERR] = "Failed to set user credentials",
|
||||
[PAM_ACCT_EXPIRED] = "User account has expired",
|
||||
[PAM_AUTHTOK_EXPIRED] = "Password has expired",
|
||||
[PAM_SESSION_ERR] = "Session failure",
|
||||
[PAM_AUTHTOK_ERR] = "Authentication token failure",
|
||||
[PAM_AUTHTOK_RECOVERY_ERR] = "Failed to recover old authentication token",
|
||||
[PAM_AUTHTOK_LOCK_BUSY] = "Authentication token lock busy",
|
||||
[PAM_AUTHTOK_DISABLE_AGING] = "Authentication token aging disabled",
|
||||
[PAM_NO_MODULE_DATA] = "Module data not found",
|
||||
[PAM_IGNORE] = "Ignore this module",
|
||||
[PAM_ABORT] = "General failure",
|
||||
[PAM_TRY_AGAIN] = "Try again",
|
||||
[PAM_MODULE_UNKNOWN] = "Unknown module type",
|
||||
[PAM_DOMAIN_UNKNOWN] = "Unknown authentication domain",
|
||||
[PAM_BAD_HANDLE] = "Invalid PAM handle",
|
||||
[PAM_BAD_ITEM] = "Unrecognized or restricted item",
|
||||
};
|
||||
|
||||
const char *pam_item_name[PAM_NUM_ITEMS] = {
|
||||
"(NO ITEM)",
|
||||
"PAM_SERVICE",
|
||||
"PAM_USER",
|
||||
"PAM_TTY",
|
||||
"PAM_RHOST",
|
||||
"PAM_CONV",
|
||||
"PAM_AUTHTOK",
|
||||
"PAM_OLDAUTHTOK",
|
||||
"PAM_RUSER",
|
||||
"PAM_USER_PROMPT",
|
||||
"PAM_REPOSITORY",
|
||||
"PAM_AUTHTOK_PROMPT",
|
||||
"PAM_OLDAUTHTOK_PROMPT",
|
||||
"PAM_HOST",
|
||||
[PAM_SERVICE] = "PAM_SERVICE",
|
||||
[PAM_USER] = "PAM_USER",
|
||||
[PAM_TTY] = "PAM_TTY",
|
||||
[PAM_RHOST] = "PAM_RHOST",
|
||||
[PAM_CONV] = "PAM_CONV",
|
||||
[PAM_AUTHTOK] = "PAM_AUTHTOK",
|
||||
[PAM_OLDAUTHTOK] = "PAM_OLDAUTHTOK",
|
||||
[PAM_RUSER] = "PAM_RUSER",
|
||||
[PAM_USER_PROMPT] = "PAM_USER_PROMPT",
|
||||
[PAM_REPOSITORY] = "PAM_REPOSITORY",
|
||||
[PAM_AUTHTOK_PROMPT] = "PAM_AUTHTOK_PROMPT",
|
||||
[PAM_OLDAUTHTOK_PROMPT] = "PAM_OLDAUTHTOK_PROMPT",
|
||||
[PAM_HOST] = "PAM_HOST",
|
||||
};
|
||||
|
||||
const char *pam_facility_name[PAM_NUM_FACILITIES] = {
|
||||
[PAM_ACCOUNT] = "account",
|
||||
[PAM_AUTH] = "auth",
|
||||
[PAM_PASSWORD] = "password",
|
||||
[PAM_SESSION] = "session",
|
||||
[PAM_ACCOUNT] = "account",
|
||||
[PAM_AUTH] = "auth",
|
||||
[PAM_PASSWORD] = "password",
|
||||
[PAM_SESSION] = "session",
|
||||
};
|
||||
|
||||
const char *pam_control_flag_name[PAM_NUM_CONTROL_FLAGS] = {
|
||||
[PAM_BINDING] = "binding",
|
||||
[PAM_OPTIONAL] = "optional",
|
||||
[PAM_REQUIRED] = "required",
|
||||
[PAM_REQUISITE] = "requisite",
|
||||
[PAM_SUFFICIENT] = "sufficient",
|
||||
[PAM_BINDING] = "binding",
|
||||
[PAM_OPTIONAL] = "optional",
|
||||
[PAM_REQUIRED] = "required",
|
||||
[PAM_REQUISITE] = "requisite",
|
||||
[PAM_SUFFICIENT] = "sufficient",
|
||||
};
|
||||
|
||||
const char *pam_func_name[PAM_NUM_PRIMITIVES] = {
|
||||
"pam_authenticate",
|
||||
"pam_setcred",
|
||||
"pam_acct_mgmt",
|
||||
"pam_open_session",
|
||||
"pam_close_session",
|
||||
"pam_chauthtok"
|
||||
[PAM_SM_AUTHENTICATE] = "pam_authenticate",
|
||||
[PAM_SM_SETCRED] = "pam_setcred",
|
||||
[PAM_SM_ACCT_MGMT] = "pam_acct_mgmt",
|
||||
[PAM_SM_OPEN_SESSION] = "pam_open_session",
|
||||
[PAM_SM_CLOSE_SESSION] = "pam_close_session",
|
||||
[PAM_SM_CHAUTHTOK] = "pam_chauthtok"
|
||||
};
|
||||
|
||||
const char *pam_sm_func_name[PAM_NUM_PRIMITIVES] = {
|
||||
"pam_sm_authenticate",
|
||||
"pam_sm_setcred",
|
||||
"pam_sm_acct_mgmt",
|
||||
"pam_sm_open_session",
|
||||
"pam_sm_close_session",
|
||||
"pam_sm_chauthtok"
|
||||
[PAM_SM_AUTHENTICATE] = "pam_sm_authenticate",
|
||||
[PAM_SM_SETCRED] = "pam_sm_setcred",
|
||||
[PAM_SM_ACCT_MGMT] = "pam_sm_acct_mgmt",
|
||||
[PAM_SM_OPEN_SESSION] = "pam_sm_open_session",
|
||||
[PAM_SM_CLOSE_SESSION] = "pam_sm_close_session",
|
||||
[PAM_SM_CHAUTHTOK] = "pam_sm_chauthtok"
|
||||
};
|
||||
|
||||
const char *openpam_policy_path[] = {
|
||||
|
|
|
@ -33,6 +33,7 @@
|
|||
#define OPENPAM_CONSTANTS_H_INCLUDED
|
||||
|
||||
extern const char *pam_err_name[PAM_NUM_ERRORS];
|
||||
extern const char *pam_err_text[PAM_NUM_ERRORS];
|
||||
extern const char *pam_item_name[PAM_NUM_ITEMS];
|
||||
extern const char *pam_facility_name[PAM_NUM_FACILITIES];
|
||||
extern const char *pam_control_flag_name[PAM_NUM_CONTROL_FLAGS];
|
||||
|
|
|
@ -63,7 +63,7 @@ pam_getenvlist(pam_handle_t *pamh)
|
|||
envlist = malloc(sizeof(char *) * (pamh->env_count + 1));
|
||||
if (envlist == NULL) {
|
||||
openpam_log(PAM_LOG_ERROR, "%s",
|
||||
pam_strerror(pamh, PAM_BUF_ERR));
|
||||
pam_err_text[PAM_BUF_ERR]);
|
||||
RETURNP(NULL);
|
||||
}
|
||||
for (i = 0; i < pamh->env_count; ++i) {
|
||||
|
@ -74,7 +74,7 @@ pam_getenvlist(pam_handle_t *pamh)
|
|||
}
|
||||
FREE(envlist);
|
||||
openpam_log(PAM_LOG_ERROR, "%s",
|
||||
pam_strerror(pamh, PAM_BUF_ERR));
|
||||
pam_err_text[PAM_BUF_ERR]);
|
||||
RETURNP(NULL);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -59,69 +59,9 @@ pam_strerror(const pam_handle_t *pamh,
|
|||
static char unknown[16];
|
||||
|
||||
(void)pamh;
|
||||
|
||||
switch (error_number) {
|
||||
case PAM_SUCCESS:
|
||||
return ("success");
|
||||
case PAM_OPEN_ERR:
|
||||
return ("failed to load module");
|
||||
case PAM_SYMBOL_ERR:
|
||||
return ("invalid symbol");
|
||||
case PAM_SERVICE_ERR:
|
||||
return ("error in service module");
|
||||
case PAM_SYSTEM_ERR:
|
||||
return ("system error");
|
||||
case PAM_BUF_ERR:
|
||||
return ("memory buffer error");
|
||||
case PAM_CONV_ERR:
|
||||
return ("conversation failure");
|
||||
case PAM_PERM_DENIED:
|
||||
return ("permission denied");
|
||||
case PAM_MAXTRIES:
|
||||
return ("maximum number of tries exceeded");
|
||||
case PAM_AUTH_ERR:
|
||||
return ("authentication error");
|
||||
case PAM_NEW_AUTHTOK_REQD:
|
||||
return ("new authentication token required");
|
||||
case PAM_CRED_INSUFFICIENT:
|
||||
return ("insufficient credentials");
|
||||
case PAM_AUTHINFO_UNAVAIL:
|
||||
return ("authentication information is unavailable");
|
||||
case PAM_USER_UNKNOWN:
|
||||
return ("unknown user");
|
||||
case PAM_CRED_UNAVAIL:
|
||||
return ("failed to retrieve user credentials");
|
||||
case PAM_CRED_EXPIRED:
|
||||
return ("user credentials have expired");
|
||||
case PAM_CRED_ERR:
|
||||
return ("failed to set user credentials");
|
||||
case PAM_ACCT_EXPIRED:
|
||||
return ("user account has expired");
|
||||
case PAM_AUTHTOK_EXPIRED:
|
||||
return ("password has expired");
|
||||
case PAM_SESSION_ERR:
|
||||
return ("session failure");
|
||||
case PAM_AUTHTOK_ERR:
|
||||
return ("authentication token failure");
|
||||
case PAM_AUTHTOK_RECOVERY_ERR:
|
||||
return ("failed to recover old authentication token");
|
||||
case PAM_AUTHTOK_LOCK_BUSY:
|
||||
return ("authentication token lock busy");
|
||||
case PAM_AUTHTOK_DISABLE_AGING:
|
||||
return ("authentication token aging disabled");
|
||||
case PAM_NO_MODULE_DATA:
|
||||
return ("module data not found");
|
||||
case PAM_IGNORE:
|
||||
return ("ignore this module");
|
||||
case PAM_ABORT:
|
||||
return ("general failure");
|
||||
case PAM_TRY_AGAIN:
|
||||
return ("try again");
|
||||
case PAM_MODULE_UNKNOWN:
|
||||
return ("unknown module type");
|
||||
case PAM_DOMAIN_UNKNOWN:
|
||||
return ("unknown authentication domain");
|
||||
default:
|
||||
if (error_number >= 0 && error_number < PAM_NUM_ERRORS) {
|
||||
return (pam_err_text[error_number]);
|
||||
} else {
|
||||
snprintf(unknown, sizeof unknown, "#%d", error_number);
|
||||
return (unknown);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue