pam: check environ[] for XDG_SEAT as fallback

This is useful for systems such as kmscon which want to invoke classic
/sbin/login but use it on multiple seats.
This commit is contained in:
Lennart Poettering 2012-10-01 14:50:00 -04:00
parent d67227c8b9
commit a8573ccc35
1 changed files with 8 additions and 0 deletions

View File

@ -428,8 +428,14 @@ _public_ PAM_EXTERN int pam_sm_open_session(
pam_get_item(handle, PAM_TTY, (const void**) &tty);
pam_get_item(handle, PAM_RUSER, (const void**) &remote_user);
pam_get_item(handle, PAM_RHOST, (const void**) &remote_host);
seat = pam_getenv(handle, "XDG_SEAT");
if (isempty(seat))
seat = getenv("XDG_SEAT");
cvtnr = pam_getenv(handle, "XDG_VTNR");
if (isempty(cvtnr))
cvtnr = getenv("XDG_VTNR");
service = strempty(service);
tty = strempty(tty);
@ -467,6 +473,8 @@ _public_ PAM_EXTERN int pam_sm_open_session(
!isempty(tty) ? "tty" : "unspecified";
class = pam_getenv(handle, "XDG_SESSION_CLASS");
if (isempty(class))
class = getenv("XDG_SESSION_CLASS");
if (isempty(class))
class = "user";