diff options
author | Jeroen <jeroen@nijhofnet.nl> | 2011-08-20 00:15:08 +0200 |
---|---|---|
committer | Jeroen <jeroen@nijhofnet.nl> | 2011-08-20 00:15:08 +0200 |
commit | 3cee0494d3bc79adf496251b42dc2b0ff7848380 (patch) | |
tree | c942667373f48805172871d25eec61b23fa0e028 /support.c | |
parent | 638486dec6577299c7d8282da4b2f02fc9871bbd (diff) | |
download | pam_tacplus-3cee0494d3bc79adf496251b42dc2b0ff7848380.tar.gz pam_tacplus-3cee0494d3bc79adf496251b42dc2b0ff7848380.zip |
Added _pam_get_rhost() and _pam_get_user()
Diffstat (limited to 'support.c')
-rw-r--r-- | support.c | 43 |
1 files changed, 33 insertions, 10 deletions
@@ -59,11 +59,35 @@ void *_xcalloc (size_t size) { #define _xcalloc xcalloc #endif +void _pam_log(int err, const char *format,...) { + char msg[256]; + va_list args; + + va_start(args, format); + vsnprintf(msg, sizeof(msg), format, args); + openlog("PAM-tacplus", LOG_PID, LOG_AUTH); + syslog(err, "%s", msg); + va_end(args); + closelog(); +} + +char *_pam_get_user(pam_handle_t *pamh) { + int retval; + char *user; + + retval = pam_get_user(pamh, (void *)&user, "Username: "); + if (retval != PAM_SUCCESS || user == NULL || *user == '\0') { + _pam_log(LOG_ERR, "unable to obtain username"); + user = NULL; + } + return user; +} + char *_pam_get_terminal(pam_handle_t *pamh) { int retval; char *tty; - retval = pam_get_item (pamh, PAM_TTY, (void *)&tty); + retval = pam_get_item(pamh, PAM_TTY, (void *)&tty); if (retval != PAM_SUCCESS || tty == NULL || *tty == '\0') { tty = ttyname(STDIN_FILENO); if(tty == NULL || *tty == '\0') @@ -72,16 +96,15 @@ char *_pam_get_terminal(pam_handle_t *pamh) { return tty; } -void _pam_log(int err, const char *format,...) { - char msg[256]; - va_list args; +char *_pam_get_rhost(pam_handle_t *pamh) { + int retval; + char *rhost; - va_start(args, format); - vsnprintf(msg, sizeof(msg), format, args); - openlog("PAM-tacplus", LOG_PID, LOG_AUTH); - syslog(err, "%s", msg); - va_end(args); - closelog(); + retval = pam_get_item(pamh, PAM_RHOST, (void *)&rhost); + if (retval != PAM_SUCCESS || rhost == NULL || *rhost == '\0') { + rhost = "unknown"; + } + return rhost; } /* stolen from pam_stress */ |