]> granicus.if.org Git - curl/commitdiff
test575: do not fail with threaded DNS resolver
authorKamil Dudka <kdudka@redhat.com>
Thu, 17 Jun 2010 15:07:15 +0000 (17:07 +0200)
committerKamil Dudka <kdudka@redhat.com>
Thu, 17 Jun 2010 15:07:15 +0000 (17:07 +0200)
CHANGES
tests/libtest/lib575.c

diff --git a/CHANGES b/CHANGES
index 916f8d889df5c33cd896dfa960bca9e60458335f..bfbe2f8bb8a2ee855a2cab21141e6f0fb8dd0aaf 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -6,6 +6,9 @@
 
                                   Changelog
 
+Kamil Dudka (17 June 2010)
+- Improve test575 in order to not fail with threaded DNS resolver.
+
 Version 7.21.0 (16 June 2010)
 
 Daniel Stenberg (5 June 2010)
index 49a379e804433d16daec5bd76bfb8b9d141eaaa2..521720e95835b1828e120045f261a54be5db22b2 100644 (file)
@@ -71,7 +71,7 @@ int test(char *URL)
         curl_multi_perform(mhandle, &still_running));
 
   while(still_running) {
-    struct timeval timeout;
+    static struct timeval timeout = /* 100 ms */ { 0, 100000L };
     int rc;
     fd_set fdread;
     fd_set fdwrite;
@@ -80,23 +80,19 @@ int test(char *URL)
     FD_ZERO(&fdread);
     FD_ZERO(&fdwrite);
     FD_ZERO(&fdexcep);
-    timeout.tv_sec = 3;
-    timeout.tv_usec = 0;
 
     m = curl_multi_fdset(mhandle, &fdread, &fdwrite, &fdexcep, &max_fdset);
     if(m != CURLM_OK) {
       fprintf(stderr, "curl_multi_fdset() error\n");
       goto test_cleanup;
     }
+    /* We call select(max_fdset + 1, ...), specially in case of (maxfd == -1),
+     * we call select(0, ...), which is basically equal to sleep. */
     rc = select(max_fdset + 1, &fdread, &fdwrite, &fdexcep, &timeout);
     if(rc == -1) {
       fprintf(stderr, "select() error\n");
       goto test_cleanup;
     }
-    else if(rc == 0) {
-      fprintf(stderr, "select() timeout!\n");
-      goto test_cleanup;
-    }
     else {
       while(CURLM_CALL_MULTI_PERFORM ==
           curl_multi_perform(mhandle, &still_running));