---
 xwayland/launcher.c | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git a/xwayland/launcher.c b/xwayland/launcher.c
index 0ecdb205..91d976ec 100644
--- a/xwayland/launcher.c
+++ b/xwayland/launcher.c
@@ -72,6 +72,10 @@ weston_xserver_shutdown(struct weston_xserver *wxs)
        unlink(path);
        snprintf(path, sizeof path, "/tmp/.X11-unix/X%d", wxs->display);
        unlink(path);
+#ifndef __linux__
+       snprintf(path, sizeof path, "/tmp/.X11-unix/X%d_", wxs->display);
+       unlink(path);
+#endif
        if (wxs->pid == 0) {
                wl_event_source_remove(wxs->abstract_source);
                wl_event_source_remove(wxs->unix_source);
@@ -97,11 +101,26 @@ bind_to_abstract_socket(int display)
                return -1;
 
        addr.sun_family = AF_LOCAL;
+
+#ifdef __linux__
        name_size = snprintf(addr.sun_path, sizeof addr.sun_path,
                             "%c/tmp/.X11-unix/X%d", 0, display);
+#else
+       name_size = snprintf(addr.sun_path, sizeof addr.sun_path,
+                            "/tmp/.X11-unix/X%d_", display) + 1;
+#endif
+
        size = offsetof(struct sockaddr_un, sun_path) + name_size;
+#ifndef __linux__
+       unlink(addr.sun_path);
+#endif
+
        if (bind(fd, (struct sockaddr *) &addr, size) < 0) {
+#ifdef __linux__
                weston_log("failed to bind to @%s: %m\n", addr.sun_path + 1);
+#else
+               weston_log("failed to bind to %s: %m\n", addr.sun_path);
+#endif
                close(fd);
                return -1;
        }
-- 
2.15.1

_______________________________________________
wayland-devel mailing list
wayland-devel@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/wayland-devel

Reply via email to