]> granicus.if.org Git - curl/commitdiff
Added select_test() function to allow selecting on no sockets on
authorGisle Vanem <gvanem@broadpark.no>
Sun, 10 Sep 2006 19:01:04 +0000 (19:01 +0000)
committerGisle Vanem <gvanem@broadpark.no>
Sun, 10 Sep 2006 19:01:04 +0000 (19:01 +0000)
Winsock.

tests/libtest/first.c
tests/libtest/lib503.c
tests/libtest/lib504.c
tests/libtest/lib507.c
tests/libtest/lib509.c
tests/libtest/lib525.c
tests/libtest/lib526.c
tests/libtest/lib530.c
tests/libtest/test.h

index a7f3173557437beaf3e9fb77811221b77050a14d..fda1a7fb590b21bc5519b4a6d0c415b744a02eed 100644 (file)
@@ -9,6 +9,21 @@ extern void curl_memlimit(int);
 /* test is provided in the test code file */
 int test(char *url);
 
+int select_test (int num_fds, fd_set *rd, fd_set *wr, fd_set *exc,
+                 struct timeval *tv)
+{
+#ifdef WIN32
+  /* Winsock doesn't like no socket set in 'rd', 'wr' or 'exc'. This is
+   * case when 'num_fds <= 0. So sleep.
+   */
+  if (num_fds <= 0) {
+    Sleep(1000*tv->tv_sec + tv->tv_usec/1000);
+    return 0;
+  }
+#endif
+  return select(num_fds, rd, wr, exc, tv);
+}
+
 char *arg2=NULL;
 
 int main(int argc, char **argv)
index aeb85db366c120556ae2183ac52ee3d3d86ee8d8..4e7ac82db4170e3416c6b6c9ba719200d72047b7 100644 (file)
@@ -67,7 +67,7 @@ int test(char *URL)
         return 89;
       }
 
-      if (select(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
+      if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
         fprintf(stderr, "bad select??\n");
         return 95;
       }
index 5ba9362bbc3935399966c17e6aa34d95d632bfb5..843e9ebd0b667ce0d361b8b679f0e7106410f7f4 100644 (file)
@@ -77,7 +77,7 @@ int test(char *URL)
         ret = 3;
         break;
       }
-      rc = select(max_fd+1, &rd, &wr, &exc, &interval);
+      rc = select_test(max_fd+1, &rd, &wr, &exc, &interval);
       fprintf(stderr, "select returned %d\n", rc);
 
       /* we only allow a certain number of loops to avoid hanging here
index 4e776ec4ac3380b97257722c3ebfa40cd9c2cc77..8fc4ca3ce260ce344a194437d7cc1ac15b0a4072 100644 (file)
@@ -28,7 +28,7 @@ int test(char *URL)
     timeout.tv_sec = 1;
     timeout.tv_usec = 0;
     curl_multi_fdset(multi, &fdread, &fdwrite, &fdexcep, &maxfd);
-    rc = select(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
+    rc = select_test(maxfd+1, &fdread, &fdwrite, &fdexcep, &timeout);
     switch(rc) {
       case -1:
         break;
index d20c31524270ee37f63e045320c504be67ebeafb..415208ac7d1fdc08e9070600f51358a04d88da4f 100644 (file)
@@ -241,7 +241,7 @@ int test(char *URL)
         break;
       }
 
-      if (select(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
+      if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
         fprintf(stderr, "bad select??\n");
         i =95;
         break;
index 9946ce3542aa789168ccda469684b0a08bcacf4c..77e5c203a0a3969a8d2dc7da17ebdbe4487f1d50 100644 (file)
@@ -114,7 +114,7 @@ int test(char *URL)
       break;
     }
 
-    if (select(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
+    if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
       fprintf(stderr, "bad select??\n");
       res = 195;
       break;
index 5050b27f2ebd0ecbb5fa4db32f10ca828904d4cc..de3a36d02dd131713c2b1cea3c8489bdb9d763cf 100644 (file)
@@ -106,7 +106,7 @@ int test(char *URL)
       break;
     }
 
-    if (select(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
+    if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
       fprintf(stderr, "bad select??\n");
       res = 195;
       break;
index 85b2e74ade581ecc5e90f8539b7adcfd0ca38075..3e6cd3faca04b2de9c10049a990c5859e15f929b 100644 (file)
@@ -83,7 +83,7 @@ int test(char *URL)
       break;
     }
 
-    if (select(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
+    if (select_test(max_fd+1, &rd, &wr, &exc, &interval) == -1) {
       fprintf(stderr, "bad select??\n");
       res = 195;
       break;
index a442ba4bd4d91a501724084534ab6de1361d7be6..83ec94b655217a34f67251e0ff7e5eb833d469d3 100644 (file)
@@ -32,5 +32,9 @@
 #endif
 
 extern char *arg2; /* set by first.c to the argv[2] or NULL */
+
+int select_test (int num_fds, fd_set *rd, fd_set *wr, fd_set *exc,
+                 struct timeval *tv);
+
 int test(char *URL); /* the actual test function provided by each individual
                         libXXX.c file */