diff --git a/lib/select.c b/lib/select.c index 4a7fee4921bc3edec5de0724886203d86d8e185e..7c2f2624f1d6119af95caff6ab1a770934a1c018 100644 --- a/lib/select.c +++ b/lib/select.c @@ -110,8 +110,15 @@ int Curl_select(curl_socket_t readfd, curl_socket_t writefd, int timeout_ms) if (readfd != CURL_SOCKET_BAD) { if (pfd[num].revents & (POLLIN|POLLHUP)) ret |= CSELECT_IN; - if (pfd[num].revents & POLLERR) - ret |= CSELECT_ERR; + if (pfd[num].revents & POLLERR) { +#ifdef __CYGWIN__ + /* Cygwin 1.5.21 needs this hack to pass test 160 */ + if (errno == EINPROGRESS) + ret |= CSELECT_IN; + else +#endif + ret |= CSELECT_ERR; + } num++; } if (writefd != CURL_SOCKET_BAD) {