diff --git a/configure.ac b/configure.ac index f880918..66e24a0 100644 --- a/configure.ac +++ b/configure.ac @@ -51,7 +51,7 @@ AC_SUBST(HTML_CHECK_RESULT) # Checks for pkg-config packages PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.13) -NEEDED="pthread-stubs xau >= 0.99.2" +NEEDED="xau >= 0.99.2" PKG_CHECK_MODULES(NEEDED, $NEEDED) have_xdmcp="no" diff --git a/src/xcb_in.c b/src/xcb_in.c index 73209e0..0dd7314 100644 --- a/src/xcb_in.c +++ b/src/xcb_in.c @@ -966,7 +966,7 @@ void _xcb_in_replies_done(xcb_connection_t *c) int _xcb_in_read(xcb_connection_t *c) { - int n; + int n, err; #if HAVE_SENDMSG struct iovec iov = { @@ -999,6 +999,7 @@ int _xcb_in_read(xcb_connection_t *c) #else n = recv(c->fd, c->in.queue + c->in.queue_len, sizeof(c->in.queue) - c->in.queue_len, 0); #endif + err = errno; if(n > 0) { #if HAVE_SENDMSG struct cmsghdr *hdr; @@ -1039,7 +1040,7 @@ int _xcb_in_read(xcb_connection_t *c) } #endif #ifndef _WIN32 - if((n > 0) || (n < 0 && errno == EAGAIN)) + if((n > 0) || (n < 0 && (err == EAGAIN || err == ENOENT || err == 0))) #else if((n > 0) || (n < 0 && WSAGetLastError() == WSAEWOULDBLOCK)) #endif /* !_WIN32 */