diff --git a/src/xpdev/multisock.c b/src/xpdev/multisock.c index 8e12aff896f7eedc0bbb271340306b4dd38dab16..6a138a54bf33b913f0713e11d13de1d0c1afa7ca 100644 --- a/src/xpdev/multisock.c +++ b/src/xpdev/multisock.c @@ -387,7 +387,7 @@ SOCKET DLLCALL xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr, for(i=0; i<xpms_set->sock_count; i++) { if(xpms_set->socks[i].sock == INVALID_SOCKET) continue; - if ((fds[scnt].revents & POLLIN) == 0) { + if (fds[scnt].revents & (POLLERR | POLLNVAL)) { closesocket(xpms_set->socks[i].sock); xpms_set->lprintf(LOG_ERR, "%04d * Listening socket went bad", xpms_set->socks[i].sock); xpms_set->socks[i].sock = INVALID_SOCKET;