pam: Split off remote session code

This commit is contained in:
Bastien Nocera
2020-01-28 12:04:59 +01:00
parent 874b4556ef
commit 046ec8dbf4

View File

@ -588,16 +588,10 @@ out:
return ret; return ret;
} }
PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc, static bool
const char **argv) is_remote (pam_handle_t *pamh)
{ {
const char *rhost = NULL; const char *rhost = NULL;
const char *username;
unsigned i;
int r;
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
pam_get_item(pamh, PAM_RHOST, (const void **)(const void*) &rhost); pam_get_item(pamh, PAM_RHOST, (const void **)(const void*) &rhost);
@ -607,9 +601,25 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc,
if (rhost != NULL && if (rhost != NULL &&
*rhost != '\0' && *rhost != '\0' &&
strcmp (rhost, "localhost") != 0) { strcmp (rhost, "localhost") != 0) {
return PAM_AUTHINFO_UNAVAIL; return true;
} }
return false;
}
PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags, int argc,
const char **argv)
{
const char *username;
unsigned i;
int r;
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
if (is_remote (pamh))
return PAM_AUTHINFO_UNAVAIL;
r = pam_get_user(pamh, &username, NULL); r = pam_get_user(pamh, &username, NULL);
if (r != PAM_SUCCESS) if (r != PAM_SUCCESS)
return PAM_AUTHINFO_UNAVAIL; return PAM_AUTHINFO_UNAVAIL;