From b0c19bd3c206ca8054b321185f867eeed773257e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Deuc=D0=B5?= <shurd@sasktel.net>
Date: Sun, 21 Mar 2021 12:25:35 -0400
Subject: [PATCH] Fix bad listening socket detection in multisock

A socket isn't bad just because there was no incoming connections. :D
---
 src/xpdev/multisock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/xpdev/multisock.c b/src/xpdev/multisock.c
index 8e12aff896..6a138a54bf 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;
-- 
GitLab