summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJeremy Huddleston <jeremyhu@apple.com>2011-10-10 12:16:31 -0700
committerJeremy Huddleston <jeremyhu@apple.com>2011-10-10 20:40:44 -0700
commitdb30615bcb3b872475e7d40eeee8cdda5b723078 (patch)
tree9de76869320a1a264da6dfb22cb25c9afaa717e3
parentc13a48e74ec89eafa9b529a87253a631ef02f2e2 (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.c11
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);