Authen-PAM
view release on metacpan or search on metacpan
#define SET_CONV_FUNC(pamh) static_perl_pam_data = get_perl_pam_data(pamh)
#else
#define SET_CONV_FUNC(pamh)
#endif
static int
not_here(s)
char *s;
{
croak("%s not implemented on this architecture", s);
return -1;
}
static int
my_conv_func(num_msg, msg, resp, appdata_ptr)
int num_msg;
return PAM_USER_UNKNOWN;
else if (strcmp(name, "MAXTRIES") == 0)
return PAM_MAXTRIES;
else if (strcmp(name, "NEW_AUTHTOK_REQD") == 0 ||
strcmp(name, "AUTHTOKEN_REQD") == 0)
#if defined(HAVE_PAM_NEW_AUTHTOK_REQD)
return PAM_NEW_AUTHTOK_REQD;
#elif defined(HAVE_PAM_AUTHTOKEN_REQD)
return PAM_AUTHTOKEN_REQD; /* Old Linux-PAM */
#else
goto not_there;
#endif
else if (strcmp(name, "ACCT_EXPIRED") == 0)
return PAM_ACCT_EXPIRED;
else if (strcmp(name, "SESSION_ERR") == 0)
return PAM_SESSION_ERR;
else if (strcmp(name, "CRED_UNAVAIL") == 0)
return PAM_CRED_UNAVAIL;
else if (strcmp(name, "CRED_EXPIRED") == 0)
return PAM_CRED_EXPIRED;
else if (strcmp(name, "CRED_ERR") == 0)
return PAM_CONV_ERR;
else if (strcmp(name, "AUTHTOK_ERR") == 0)
return PAM_AUTHTOK_ERR;
else if (strcmp(name, "AUTHTOK_RECOVER_ERR") == 0 ||
strcmp(name, "AUTHTOK_RECOVERY_ERR") == 0)
#if defined(HAVE_PAM_AUTHTOK_RECOVER_ERR) /* Linux-PAM */
return PAM_AUTHTOK_RECOVER_ERR;
#elif defined(HAVE_PAM_AUTHTOK_RECOVERY_ERR) /* Solaris PAM */
return PAM_AUTHTOK_RECOVERY_ERR;
#else
goto not_there;
#endif
else if (strcmp(name, "AUTHTOK_LOCK_BUSY") == 0)
return PAM_AUTHTOK_LOCK_BUSY;
else if (strcmp(name, "AUTHTOK_DISABLE_AGING") == 0)
return PAM_AUTHTOK_DISABLE_AGING;
else if (strcmp(name, "TRY_AGAIN") == 0)
return PAM_TRY_AGAIN;
else if (strcmp(name, "IGNORE") == 0)
return PAM_IGNORE;
else if (strcmp(name, "ABORT") == 0)
return PAM_ABORT;
else if (strcmp(name, "AUTHTOK_EXPIRED") == 0)
#if defined(HAVE_PAM_AUTHTOK_EXPIRED)
return PAM_AUTHTOK_EXPIRED;
#else
goto not_there;
#endif
else if (strcmp(name, "MODULE_UNKNOWN") == 0)
#if defined(HAVE_PAM_MODULE_UNKNOWN) /* Linux-PAM only */
return PAM_MODULE_UNKNOWN;
#else
goto not_there;
#endif
else if (strcmp(name, "BAD_ITEM") == 0)
#if defined(HAVE_PAM_BAD_ITEM)
return PAM_BAD_ITEM;
#else
goto not_there;
#endif
/* New Linux-PAM return codes */
else if (strcmp(name, "CONV_AGAIN") == 0)
#if defined(HAVE_PAM_CONV_AGAIN)
return PAM_CONV_AGAIN;
#else
goto not_there;
#endif
else if (strcmp(name, "INCOMPLETE") == 0)
#if defined(HAVE_PAM_INCOMPLETE)
return PAM_INCOMPLETE;
#else
goto not_there;
#endif
/* set/get_item constants */
else if (strcmp(name, "SERVICE") == 0)
return PAM_SERVICE;
else if (strcmp(name, "USER") == 0)
return PAM_USER;
else if (strcmp(name, "TTY") == 0)
return PAM_TTY;
else if (strcmp(name, "RHOST") == 0)
return PAM_CONV;
*/
else if (strcmp(name, "RUSER") == 0)
return PAM_RUSER;
else if (strcmp(name, "USER_PROMPT") == 0)
return PAM_USER_PROMPT;
else if (strcmp(name, "FAIL_DELAY") == 0)
#if defined(HAVE_PAM_FAIL_DELAY)
return PAM_FAIL_DELAY;
#else
goto not_there;
#endif
/* global flag */
else if (strcmp(name, "SILENT") == 0)
return PAM_SILENT;
/* pam_authenticate falgs */
else if (strcmp(name, "DISALLOW_NULL_AUTHTOK") == 0)
return PAM_DISALLOW_NULL_AUTHTOK;
/* pam_set_cred flags */
else if (strcmp(name, "ESTABLISH_CRED") == 0 ||
strcmp(name, "CRED_ESTABLISH") == 0)
#if defined(HAVE_PAM_ESTABLISH_CRED)
return PAM_ESTABLISH_CRED;
#elif defined(HAVE_PAM_CRED_ESTABLISH) /* Old Linux-PAM */
return PAM_CRED_ESTABLISH;
#else
goto not_there;
#endif
else if (strcmp(name, "DELETE_CRED") == 0 ||
strcmp(name, "CRED_DELETE") == 0)
#if defined(HAVE_PAM_DELETE_CRED)
return PAM_DELETE_CRED;
#elif defined(HAVE_PAM_CRED_DELETE) /* Old Linux-PAM */
return PAM_CRED_DELETE;
#else
goto not_there;
#endif
else if (strcmp(name, "REINITIALIZE_CRED") == 0 ||
strcmp(name, "CRED_REINITIALIZE") == 0)
#if defined(HAVE_PAM_REINITIALIZE_CRED)
return PAM_REINITIALIZE_CRED;
#elif defined(HAVE_PAM_CRED_REINITIALIZE)
return PAM_CRED_REINITIALIZE; /* Old Linux-PAM */
#else
goto not_there;
#endif
else if (strcmp(name, "REFRESH_CRED") == 0 ||
strcmp(name, "CRED_REFRESH") == 0)
#if defined(HAVE_PAM_REFRESH_CRED)
return PAM_REFRESH_CRED;
#elif defined(HAVE_PAM_CRED_REFRESH)
return PAM_CRED_REFRESH; /* Old Linux-PAM */
#else
goto not_there;
#endif
/* pam_chauthtok flags */
else if (strcmp(name, "CHANGE_EXPIRED_AUTHTOK") == 0)
return PAM_CHANGE_EXPIRED_AUTHTOK;
/* message style constants */
else if (strcmp(name, "PROMPT_ECHO_OFF") == 0)
return PAM_PROMPT_ECHO_OFF;
else if (strcmp(name, "PROMPT_ECHO_ON") == 0)
return PAM_PROMPT_ECHO_ON;
else if (strcmp(name, "ERROR_MSG") == 0)
return PAM_ERROR_MSG;
else if (strcmp(name, "TEXT_INFO") == 0)
return PAM_TEXT_INFO;
else if (strcmp(name, "RADIO_TYPE") == 0)
#if defined(HAVE_PAM_RADIO_TYPE)
return PAM_RADIO_TYPE;
#else
goto not_there;
#endif
else if (strcmp(name, "BINARY_PROMPT") == 0)
#if defined(HAVE_PAM_BINARY_PROMPT)
return PAM_BINARY_PROMPT;
#else
goto not_there;
#endif
/* I'm not sure if these are really needed... */
/*
else if (strcmp(name, "MAX_MSG_SIZE") == 0)
return PAM_MAX_MSG_SIZE;
else if (strcmp(name, "MAX_RESP_SIZE") == 0)
return PAM_MAX_RESP_SIZE;
*/
}
return 1;
#else
return 0;
#endif
*/
}
errno = EINVAL;
return 0;
not_there:
errno = ENOSYS;
return 0;
}
MODULE = Authen::PAM PACKAGE = Authen::PAM
PROTOTYPES: ENABLE
for (i = 0; i < c; i++)
PUSHs(sv_2mortal(newSVpv(res[i],0)));
#else
int
pam_putenv(pamh, name_value)
pam_handle_t *pamh
const char *name_value
CODE:
not_here("pam_putenv");
const char *
pam_getenv(pamh, name)
pam_handle_t *pamh
const char *name
CODE:
not_here("pam_getenv");
void
_pam_getenvlist(pamh)
pam_handle_t *pamh
CODE:
not_here("pam_getenvlist");
#endif
#if defined(HAVE_PAM_FAIL_DELAY)
int
pam_fail_delay(pamh, musec_delay)
pam_handle_t *pamh
unsigned int musec_delay
OUTPUT:
RETVAL
#else
void
pam_fail_delay(pamh, musec_delay)
pam_handle_t * pamh
unsigned int musec_delay
CODE:
not_here("pam_fail_delay");
#endif
int
pam_authenticate(pamh, flags=0)
pam_handle_t *pamh
int flags
CODE:
SET_CONV_FUNC(pamh);
( run in 0.403 second using v1.01-cache-2.11-cpan-0a987023a57 )