Commit c2862742 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

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.
parent 8a712eb5
Loading
Loading
Loading
Loading
+7 −0
Original line number Original line Diff line number Diff line
@@ -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)
Daniel (12 November 2005)
- Eugene Kotlyarov found out that cygwin's poll() function isn't doing things
- 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
  right: http://curl.haxx.se/mail/archive-2005-11/0045.html so we now disable
+1 −1
Original line number Original line Diff line number Diff line
@@ -18,7 +18,7 @@ This release includes the following changes:


This release includes the following bugfixes:
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 the GnuTLS code didn't support client certificates
 o TFTP over IPv6 works
 o TFTP over IPv6 works
 o no reverse lookups on IP addresses when ipv6-enabled
 o no reverse lookups on IP addresses when ipv6-enabled
+2 −2
Original line number Original line Diff line number Diff line
@@ -1591,10 +1591,10 @@ AC_CHECK_DECL(basename, ,
#endif
#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
disable_poll=no
case $host in
case $host in
  *-*-darwin* | *-*-cygwin)
  *-*-darwin*)
    disable_poll="yes";
    disable_poll="yes";
    ;;
    ;;
  *)
  *)
+1 −1
Original line number Original line Diff line number Diff line
@@ -104,7 +104,7 @@ int Curl_select(curl_socket_t readfd, curl_socket_t writefd, int timeout_ms)
  ret = 0;
  ret = 0;
  num = 0;
  num = 0;
  if (readfd != CURL_SOCKET_BAD) {
  if (readfd != CURL_SOCKET_BAD) {
    if (pfd[num].revents & POLLIN)
    if (pfd[num].revents & (POLLIN|POLLHUP))
      ret |= CSELECT_IN;
      ret |= CSELECT_IN;
    if (pfd[num].revents & POLLERR)
    if (pfd[num].revents & POLLERR)
      ret |= CSELECT_ERR;
      ret |= CSELECT_ERR;