diff options
author | William Jon McCann <mccann@jhu.edu> | 2007-04-04 12:04:16 -0400 |
---|---|---|
committer | William Jon McCann <mccann@jhu.edu> | 2007-04-04 12:04:16 -0400 |
commit | c012fdf98a19e9e3d67a64ed308943a04c355dc8 (patch) | |
tree | 7201e202c29d7041362545fb1840d5706bd12fe0 /pam-ck-connector/pam-ck-connector.c | |
parent | 42f6afb560859bf0dab898ae4c8f6d23070ef268 (diff) |
add support for CKCON_X11_DISPLAY_DEVICE environment variable
In order to set the x11-display-device parameter on the new
session.
Diffstat (limited to 'pam-ck-connector/pam-ck-connector.c')
-rw-r--r-- | pam-ck-connector/pam-ck-connector.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/pam-ck-connector/pam-ck-connector.c b/pam-ck-connector/pam-ck-connector.c index 22c076f..253edd0 100644 --- a/pam-ck-connector/pam-ck-connector.c +++ b/pam-ck-connector/pam-ck-connector.c @@ -227,6 +227,7 @@ pam_sm_open_session (pam_handle_t *pamh, const char *user; const char *display_device; const char *x11_display; + const char *x11_display_device; const char *remote_host_name; const char *s; uid_t uid; @@ -302,6 +303,14 @@ pam_sm_open_session (pam_handle_t *pamh, } } + x11_display_device = NULL; + if ((s = pam_getenv (pamh, "CKCON_X11_DISPLAY_DEVICE")) != NULL) { + x11_display_device = s; + if (opt_debug) { + ck_pam_syslog (pamh, LOG_INFO, "using '%s' as X11 display device (from CKCON_X11_DISPLAY_DEVICE)", x11_display_device); + } + } + uid = _util_name_to_uid (user, NULL); if (uid == (uid_t) -1) { ck_pam_syslog (pamh, LOG_ERR, "cannot determine uid for user '%s'", user); @@ -316,6 +325,9 @@ pam_sm_open_session (pam_handle_t *pamh, if (x11_display == NULL) { x11_display = ""; } + if (x11_display_device == NULL) { + x11_display_device = ""; + } if (remote_host_name == NULL) { remote_host_name = ""; } @@ -326,6 +338,7 @@ pam_sm_open_session (pam_handle_t *pamh, "user", &uid, "display-device", &display_device, "x11-display", &x11_display, + "x11-display-device", &x11_display_device, "remote-host-name", &remote_host_name, "is-local", &is_local, NULL); |