summaryrefslogtreecommitdiffstats
path: root/pam-ck-connector
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-03-05 20:36:59 -0500
committerWilliam Jon McCann <mccann@jhu.edu>2007-03-05 20:36:59 -0500
commit5cc0ba8ec8c988d0068b07e4f67839d42b357537 (patch)
tree3a8dc0434d083ff52cd19c02ee3766a3cdec5473 /pam-ck-connector
parent2e38a7026491595e6837fa8c02e077584fc71b71 (diff)
try to parse the real meaning of PAM_TTY
Diffstat (limited to 'pam-ck-connector')
-rw-r--r--pam-ck-connector/pam-ck-connector.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/pam-ck-connector/pam-ck-connector.c b/pam-ck-connector/pam-ck-connector.c
index 66591c6..9ddf426 100644
--- a/pam-ck-connector/pam-ck-connector.c
+++ b/pam-ck-connector/pam-ck-connector.c
@@ -148,6 +148,7 @@ pam_sm_open_session (pam_handle_t *pamh,
const char *s;
uid_t uid;
char buf[256];
+ char ttybuf[PATH_MAX];
DBusError error;
ret = PAM_IGNORE;
@@ -180,6 +181,15 @@ pam_sm_open_session (pam_handle_t *pamh,
goto out;
}
+ /* interpret any tty with a colon as a DISPLAY */
+ if (strchr (display_device, ':') != NULL) {
+ x11_display = display_device;
+ display_device = "";
+ } else if (strncmp ("/dev/", display_device, 5) != 0) {
+ snprintf (ttybuf, sizeof (ttybuf), "/dev/%s", display_device);
+ display_device = ttybuf;
+ }
+
if (pam_get_item (pamh, PAM_RHOST, (const void **) &s) == PAM_SUCCESS && s != NULL) {
remote_host_name = s;
if (opt_debug) {