diff options
Diffstat (limited to 'x11vnc/xwrappers.c')
| -rw-r--r-- | x11vnc/xwrappers.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/x11vnc/xwrappers.c b/x11vnc/xwrappers.c index 282c221..04b727c 100644 --- a/x11vnc/xwrappers.c +++ b/x11vnc/xwrappers.c @@ -1262,6 +1262,24 @@ Display *XOpenDisplay_wr(char *display_name) { d = XOpenDisplay(display_name); if (db) fprintf(stderr, "XOpenDisplay_wr: %s %p\n", display_name, (void *)d); + if (d == NULL) { + if (!getenv("NO_XAUTHLOCALHOSTNAME")) { + if (!getenv("XAUTHLOCALHOSTNAME")) { + rfbLog("XOpenDisplay(\"%s\") failed.\n", + display_name ? display_name : ""); + rfbLog("Trying again with XAUTHLOCALHOSTNAME=localhost ...\n"); + set_env("XAUTHLOCALHOSTNAME", "localhost"); + d = XOpenDisplay(display_name); + if (0) { + char *ptr = getenv("XAUTHLOCALHOSTNAME"); + if (ptr) { + *(ptr-2) = '_'; /* yow */ + } + } + } + } + } + xauth_raw(0); return d; |
