X-Git-Url: http://git.demorecorder.com/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fxcb_util.c;h=f17aa3c8419b31540610c6ed1da5401135e63c3d;hb=9061ee45b8dbe5431c23e3f628089d703ccad0b1;hp=64a1f6d63b3a8e00f33202ac5bd05cb7ad761661;hpb=4aa7a2c849a9536febb2dc7773e06c12a69c5213;p=free-sw%2Fxcb%2Flibxcb diff --git a/src/xcb_util.c b/src/xcb_util.c index 64a1f6d..f17aa3c 100644 --- a/src/xcb_util.c +++ b/src/xcb_util.c @@ -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 */ @@ -426,11 +431,22 @@ xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *displayname, if(!parsed) { c = _xcb_conn_ret_error(XCB_CONN_CLOSED_PARSE_ERR); goto out; - } else + } else { +#ifdef _WIN32 + WSADATA wsaData; + if (WSAStartup(MAKEWORD(2, 2), &wsaData) != 0) { + c = _xcb_conn_ret_error(XCB_CONN_ERROR); + goto out; + } +#endif fd = _xcb_open(host, protocol, display); + } if(fd == -1) { c = _xcb_conn_ret_error(XCB_CONN_ERROR); +#ifdef _WIN32 + WSACleanup(); +#endif goto out; }