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.
+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
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
#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";
;;
*)
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;