diff options
Diffstat (limited to 'tests/libtest/lib530.c')
| -rw-r--r-- | tests/libtest/lib530.c | 15 | 
1 files changed, 12 insertions, 3 deletions
diff --git a/tests/libtest/lib530.c b/tests/libtest/lib530.c index ad84ff8a5..06a846439 100644 --- a/tests/libtest/lib530.c +++ b/tests/libtest/lib530.c @@ -37,6 +37,7 @@ int test(char *URL)    CURLM *m = NULL;    int i;    char target_url[256]; +  int handles_added = 0;    for(i=0; i < NUM_HANDLES; i++)      curl[i] = NULL; @@ -59,10 +60,13 @@ int test(char *URL)      easy_setopt(curl[i], CURLOPT_VERBOSE, 1L);      /* include headers */      easy_setopt(curl[i], CURLOPT_HEADER, 1L); -    /* add handle to multi */ -    multi_add_handle(m, curl[i]);    } +  /* Add the first handle to multi. We do this to let libcurl detect +     that the server can do pipelining. The rest of the handles will be +     added later. */ +  multi_add_handle(m, curl[handles_added++]); +    multi_setopt(m, CURLMOPT_PIPELINING, 1L);    fprintf(stderr, "Start at URL 0\n"); @@ -79,9 +83,14 @@ int test(char *URL)      abort_on_test_timeout(); -    if(!running) +    if(!running && handles_added >= NUM_HANDLES)        break; /* done */ +    /* Add the rest of the handles now that the first handle has sent the +       request. */ +    while(handles_added < NUM_HANDLES) +      multi_add_handle(m, curl[handles_added++]); +      FD_ZERO(&rd);      FD_ZERO(&wr);      FD_ZERO(&exc);  | 
