diff options
-rw-r--r-- | lib/select.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/select.c b/lib/select.c index 4a7fee492..7c2f2624f 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) { |