From 5d1005ee903280077b70f563f36f4fb32899d940 Mon Sep 17 00:00:00 2001 From: deuce <> Date: Fri, 6 Sep 2013 17:31:14 +0000 Subject: [PATCH] Not sure what I was smoking when I decided that closing a listening socket when an exceptional condition is signaled by selected. --- src/xpdev/multisock.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/src/xpdev/multisock.c b/src/xpdev/multisock.c index 7bcde30651..5f0a3e84e0 100644 --- a/src/xpdev/multisock.c +++ b/src/xpdev/multisock.c @@ -206,7 +206,6 @@ SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr, socklen_t * addrlen, unsigned int timeout, void **cb_data) { fd_set read_fs; - fd_set except_fs; int i; struct timeval tv; struct timeval *tvp; @@ -217,7 +216,6 @@ SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr, if(xpms_set->socks[i].sock == INVALID_SOCKET) continue; FD_SET(xpms_set->socks[i].sock, &read_fs); - FD_SET(xpms_set->socks[i].sock, &except_fs); if(xpms_set->socks[i].sock > max_sock) max_sock=xpms_set->socks[i].sock+1; } @@ -229,7 +227,7 @@ SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr, tv.tv_usec=(timeout%1000)*1000; tvp=&tv; } - switch(select(max_sock, &read_fs, NULL, &except_fs, tvp)) { + switch(select(max_sock, &read_fs, NULL, NULL, tvp)) { case 0: return INVALID_SOCKET; case -1: @@ -243,10 +241,6 @@ SOCKET xpms_accept(struct xpms_set *xpms_set, union xp_sockaddr * addr, *cb_data=xpms_set->socks[i].cb_data; return accept(xpms_set->socks[i].sock, &addr->addr, addrlen); } - if(FD_ISSET(xpms_set->socks[i].sock, &except_fs)) { - closesocket(xpms_set->socks[i].sock); - xpms_set->socks[i].sock = INVALID_SOCKET; - } } } -- GitLab