summaryrefslogtreecommitdiffstats
path: root/pam-ck-connector/pam-ck-connector.c
diff options
context:
space:
mode:
Diffstat (limited to 'pam-ck-connector/pam-ck-connector.c')
-rw-r--r--pam-ck-connector/pam-ck-connector.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/pam-ck-connector/pam-ck-connector.c b/pam-ck-connector/pam-ck-connector.c
index 4203651..091f4b2 100644
--- a/pam-ck-connector/pam-ck-connector.c
+++ b/pam-ck-connector/pam-ck-connector.c
@@ -63,6 +63,7 @@
#include "ck-connector.h"
static int opt_debug = FALSE;
+static int opt_nox11 = FALSE;
#ifndef HAVE_PAM_SYSLOG
@@ -145,6 +146,8 @@ _parse_pam_args (const pam_handle_t *pamh,
for (i = 0; i < argc && argv[i] != NULL; i++) {
if (strcmp (argv[i] , "debug") == 0) {
opt_debug = TRUE;
+ } else if (strcmp (argv[i] , "nox11") == 0) {
+ opt_nox11 = TRUE;
} else {
ck_pam_syslog (pamh, LOG_ERR, "unknown option: %s", argv[i]);
}
@@ -276,6 +279,10 @@ pam_sm_open_session (pam_handle_t *pamh,
x11_display = NULL;
/* interpret any tty with a colon as a DISPLAY */
if (strchr (display_device, ':') != NULL) {
+ if (opt_nox11) {
+ ck_pam_syslog (pamh, LOG_WARNING, "nox11 mode, ignoring PAM_TTY %s", display_device);
+ goto out;
+ }
x11_display = display_device;
display_device = "";
} else if (strncmp (_PATH_DEV, display_device, 5) != 0) {