]> granicus.if.org Git - curl/commitdiff
Winsock sockets are not in range 0..FD_SETSIZE.
authorGisle Vanem <gvanem@broadpark.no>
Fri, 19 Nov 2004 13:46:58 +0000 (13:46 +0000)
committerGisle Vanem <gvanem@broadpark.no>
Fri, 19 Nov 2004 13:46:58 +0000 (13:46 +0000)
Shouldn't Curl_select() use curl_socket_t ?

lib/select.c

index fb337d421a27ece5ffdeb58326ec635a955cfc14..0b5af26145ed1ff3a2e23d45477929c1ddba25fe 100644 (file)
 
 #include "select.h"
 
+#ifdef WIN32
+#define VALID_SOCK(s) (1)  /* Win-sockets are not in range [0..FD_SETSIZE> */
+#else
+#define VALID_SOCK(s) ((s) >= 0) && ((s) < FD_SETSIZE))
+#endif
+
 /*
  * This is an internal function used for waiting for read or write
  * events on single file descriptors.  It attempts to replace select()
@@ -104,7 +110,7 @@ int Curl_select(int readfd, int writefd, int timeout_ms)
 
   FD_ZERO(&fds_read);
   if (readfd != CURL_SOCKET_BAD) {
-    if ((readfd < 0) || (readfd >= FD_SETSIZE)) {
+    if (!VALID_SOCK(readfd)) {
       errno = EINVAL;
       return -1;
     }
@@ -115,7 +121,7 @@ int Curl_select(int readfd, int writefd, int timeout_ms)
 
   FD_ZERO(&fds_write);
   if (writefd != CURL_SOCKET_BAD) {
-    if ((writefd < 0) || (writefd >= FD_SETSIZE)) {
+    if (!VALID_SOCK(writefd)) {
       errno = EINVAL;
       return -1;
     }