xcb_connect: launchd: Don't fall back on tcp if $DISPLAY is a path to a launchd socket
[free-sw/xcb/libxcb] / src / xcb_util.c
index 7173db3..45f66cb 100644 (file)
@@ -175,7 +175,7 @@ static int _xcb_open(const char *host, char *protocol, const int display)
     if(strncmp(host, "/tmp/launch", 11) == 0) {
         base = host;
         host = "";
-        protocol = NULL;
+        protocol = "unix";
     }
 #endif
 
@@ -235,6 +235,11 @@ static int _xcb_open(const char *host, char *protocol, const int display)
     fd = _xcb_open_unix(protocol, file);
     free(file);
 
+    if (fd < 0 && !protocol && *host == '\0') {
+           unsigned short port = X_TCP_PORT + display;
+           fd = _xcb_open_tcp(host, protocol, port);
+    }
+
     return fd;
 #endif /* !_WIN32 */
     return -1; /* if control reaches here then something has gone wrong */