diff options
author | Jeremy Huddleston <jeremyhu@apple.com> | 2011-10-10 12:16:31 -0700 |
---|---|---|
committer | Jeremy Huddleston <jeremyhu@apple.com> | 2011-10-10 20:40:44 -0700 |
commit | db30615bcb3b872475e7d40eeee8cdda5b723078 (patch) | |
tree | 9de76869320a1a264da6dfb22cb25c9afaa717e3 | |
parent | c13a48e74ec89eafa9b529a87253a631ef02f2e2 (diff) |
Xephyr: Remove socket and its lock file on exit
https://bugs.freedesktop.org/show_bug.cgi?id=11484
Signed-off-by: Jeremy Huddleston <jeremyhu@apple.com>
Reviewed-by: Mikhail Gusarov <dottedmag@dottedmag.net>
-rw-r--r-- | hw/kdrive/ephyr/hostx.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/hw/kdrive/ephyr/hostx.c b/hw/kdrive/ephyr/hostx.c index 4caf4516d..47a6681c4 100644 --- a/hw/kdrive/ephyr/hostx.c +++ b/hw/kdrive/ephyr/hostx.c @@ -45,6 +45,7 @@ #include <stdio.h> #include <unistd.h> #include <string.h> /* for memset */ +#include <errno.h> #include <time.h> #include <sys/ipc.h> @@ -331,6 +332,14 @@ hostx_set_title (char *title) ephyrTitle = title; } +static int _X_NORETURN +x_io_error_handler (Display *dpy) { + ErrorF("Lost connection to X server: %s\n", strerror(errno)); + CloseWellKnownConnections(); + OsCleanup(1); + exit(1); +} + int hostx_init (void) { @@ -358,6 +367,8 @@ hostx_init (void) exit(1); } + XSetIOErrorHandler(x_io_error_handler); + HostX.screen = DefaultScreen(HostX.dpy); HostX.winroot = RootWindow(HostX.dpy, HostX.screen); HostX.gc = XCreateGC(HostX.dpy, HostX.winroot, 0, NULL); |