]> granicus.if.org Git - curl/commitdiff
errrno can by freak accident become EINTR on DOS or
authorGisle Vanem <gvanem@broadpark.no>
Sat, 15 Jan 2005 09:26:07 +0000 (09:26 +0000)
committerGisle Vanem <gvanem@broadpark.no>
Sat, 15 Jan 2005 09:26:07 +0000 (09:26 +0000)
Windows (unrelated to select). select() can never set errno
to EINTR on Windows.

lib/select.c

index 3a1b6bc4491089ce8d44c9924fbe675b3a453d97..5bd8ea466d0986dfc0ddddf3e517d6d88c16f5c5 100644 (file)
 #error "We can't compile without select() support!"
 #endif
 
-#include "select.h"
-
 #ifdef __BEOS__
 /* BeOS has FD_SET defined in socket.h */
 #include <socket.h>
 #endif
 
+#include <curl/curl.h>
+
+#include "urldata.h"
+#include "connect.h"
+#include "select.h"
+
 #ifdef WIN32
 #define VALID_SOCK(s) (1)  /* Win-sockets are not in range [0..FD_SETSIZE> */
 #else
@@ -148,7 +152,7 @@ int Curl_select(curl_socket_t readfd, curl_socket_t writefd, int timeout_ms)
 
   do {
     r = select(maxfd + 1, &fds_read, &fds_write, &fds_err, &timeout);
-  } while((r == -1) && (errno == EINTR));
+  } while((r == -1) && (Curl_ourerrno() == EINTR));
 
   if (r < 0)
     return -1;
@@ -233,7 +237,7 @@ int Curl_poll(struct pollfd ufds[], unsigned int nfds, int timeout_ms)
 
   do {
     r = select(maxfd + 1, &fds_read, &fds_write, &fds_err, ptimeout);
-  } while((r == -1) && (errno == EINTR));
+  } while((r == -1) && (Curl_ourerrno() == EINTR));
 
   if (r < 0)
     return -1;