mirror of
https://github.com/moparisthebest/curl
synced 2024-12-21 07:38:49 -05:00
Thanks to this nice summary of poll() implementations:
http://www.greenend.org.uk/rjk/2001/06/poll.html and further tests by Eugene Kotlyarov, we now know that cygwin's poll returns only POLLHUP on remote connection closure so we check for that case (too) and re-enable poll for cygwin builds.
This commit is contained in:
parent
8a712eb5af
commit
c2862742ab
7
CHANGES
7
CHANGES
@ -8,6 +8,13 @@
|
||||
|
||||
|
||||
|
||||
Daniel (13 November 2005)
|
||||
- Thanks to this nice summary of poll() implementations:
|
||||
http://www.greenend.org.uk/rjk/2001/06/poll.html and further tests by Eugene
|
||||
Kotlyarov, we now know that cygwin's poll returns only POLLHUP on remote
|
||||
connectin closure so we check for that case (too) and re-enable poll for
|
||||
cygwin builds.
|
||||
|
||||
Daniel (12 November 2005)
|
||||
- Eugene Kotlyarov found out that cygwin's poll() function isn't doing things
|
||||
right: http://curl.haxx.se/mail/archive-2005-11/0045.html so we now disable
|
||||
|
@ -18,7 +18,7 @@ This release includes the following changes:
|
||||
|
||||
This release includes the following bugfixes:
|
||||
|
||||
o don't use poll() on cygwin, it is defective
|
||||
o fixed libcurl's use of poll() on cygwin
|
||||
o the GnuTLS code didn't support client certificates
|
||||
o TFTP over IPv6 works
|
||||
o no reverse lookups on IP addresses when ipv6-enabled
|
||||
|
@ -1591,10 +1591,10 @@ AC_CHECK_DECL(basename, ,
|
||||
#endif
|
||||
)
|
||||
|
||||
AC_MSG_CHECKING([if we are Mac OS X or cygwin to disable poll])
|
||||
AC_MSG_CHECKING([if we are Mac OS X (to disable poll)])
|
||||
disable_poll=no
|
||||
case $host in
|
||||
*-*-darwin* | *-*-cygwin)
|
||||
*-*-darwin*)
|
||||
disable_poll="yes";
|
||||
;;
|
||||
*)
|
||||
|
@ -104,7 +104,7 @@ int Curl_select(curl_socket_t readfd, curl_socket_t writefd, int timeout_ms)
|
||||
ret = 0;
|
||||
num = 0;
|
||||
if (readfd != CURL_SOCKET_BAD) {
|
||||
if (pfd[num].revents & POLLIN)
|
||||
if (pfd[num].revents & (POLLIN|POLLHUP))
|
||||
ret |= CSELECT_IN;
|
||||
if (pfd[num].revents & POLLERR)
|
||||
ret |= CSELECT_ERR;
|
||||
|
Loading…
Reference in New Issue
Block a user