Fix on_select logic for sockets

This commit is contained in:
manojampalam 2016-03-08 22:54:35 -08:00
parent ae2873e8f1
commit 1369e3054f
1 changed files with 11 additions and 9 deletions

View File

@ -889,15 +889,17 @@ socketio_on_select(struct w32_io* pio, BOOL rd) {
return 0; return 0;
//listening socket - acceptEx if needed //listening socket - acceptEx if needed
if ((sock_state == SOCK_LISTENING) if (sock_state == SOCK_LISTENING) {
&& (!pio->read_details.pending) if ((!pio->read_details.pending) && (socketio_acceptEx(pio) != 0))
&& (socketio_acceptEx(pio) != 0)) return -1;
return -1; }
//connected socket - WSARecv if needed else {
else if ((!pio->read_details.pending) //connected socket - WSARecv if needed
&& (!socketio_is_io_available(pio, rd)) if ((!pio->read_details.pending)
&& (socketio_WSARecv(pio, NULL) != 0)) && (!socketio_is_io_available(pio, rd))
return -1; && (socketio_WSARecv(pio, NULL) != 0))
return -1;
}
return 0; return 0;
} }