diff options
author | William Jon McCann <mccann@jhu.edu> | 2007-03-05 20:36:59 -0500 |
---|---|---|
committer | William Jon McCann <mccann@jhu.edu> | 2007-03-05 20:36:59 -0500 |
commit | 5cc0ba8ec8c988d0068b07e4f67839d42b357537 (patch) | |
tree | 3a8dc0434d083ff52cd19c02ee3766a3cdec5473 /pam-ck-connector | |
parent | 2e38a7026491595e6837fa8c02e077584fc71b71 (diff) | |
download | ConsoleKit2-5cc0ba8ec8c988d0068b07e4f67839d42b357537.tar.gz |
try to parse the real meaning of PAM_TTY
Diffstat (limited to 'pam-ck-connector')
-rw-r--r-- | pam-ck-connector/pam-ck-connector.c | 10 |
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) { |