From 384c8f356087178e4779d99d3e0e7f25331293aa Mon Sep 17 00:00:00 2001 From: Yang Tse Date: Wed, 25 Oct 2006 05:59:46 +0000 Subject: Use curl_global_init() and curl_global_cleanup(). Improve cleanup in case of initialization failure. --- tests/libtest/lib514.c | 58 +++++++++++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 24 deletions(-) (limited to 'tests/libtest/lib514.c') diff --git a/tests/libtest/lib514.c b/tests/libtest/lib514.c index 7100fd8a5..f68dcc09e 100644 --- a/tests/libtest/lib514.c +++ b/tests/libtest/lib514.c @@ -5,39 +5,49 @@ int test(char *URL) CURL *curl; CURLcode res=CURLE_OK; - curl = curl_easy_init(); - if(curl) { - /* First set the URL that is about to receive our POST. */ - curl_easy_setopt(curl, CURLOPT_URL, URL); + if (curl_global_init(CURL_GLOBAL_ALL) != CURLE_OK) { + fprintf(stderr, "curl_global_init() failed\n"); + return TEST_ERR_MAJOR_BAD; + } - /* Based on a bug report by Niels van Tongeren on June 29, 2004: + if ((curl = curl_easy_init()) == NULL) { + fprintf(stderr, "curl_easy_init() failed\n"); + curl_global_cleanup(); + return TEST_ERR_MAJOR_BAD; + } - A weird situation occurs when request 1 is a POST request and the request - 2 is a HEAD request. For the POST request we set the CURLOPT_POSTFIELDS, - CURLOPT_POSTFIELDSIZE and CURLOPT_POST options. For the HEAD request we - set the CURLOPT_NOBODY option to '1'. + /* First set the URL that is about to receive our POST. */ + curl_easy_setopt(curl, CURLOPT_URL, URL); - */ + /* Based on a bug report by Niels van Tongeren on June 29, 2004: - curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "moo"); - curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 3); - curl_easy_setopt(curl, CURLOPT_POST, 1); + A weird situation occurs when request 1 is a POST request and the request + 2 is a HEAD request. For the POST request we set the CURLOPT_POSTFIELDS, + CURLOPT_POSTFIELDSIZE and CURLOPT_POST options. For the HEAD request we + set the CURLOPT_NOBODY option to '1'. - /* this is where transfer 1 would take place, but skip that and change - options right away instead */ + */ - curl_easy_setopt(curl, CURLOPT_NOBODY, 1); + curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "moo"); + curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, 3); + curl_easy_setopt(curl, CURLOPT_POST, 1); - curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); /* show verbose for debug */ - curl_easy_setopt(curl, CURLOPT_HEADER, 1); /* include header */ + /* this is where transfer 1 would take place, but skip that and change + options right away instead */ - /* Now, we should be making a fine HEAD request */ + curl_easy_setopt(curl, CURLOPT_NOBODY, 1); - /* Perform the request 2, res will get the return code */ - res = curl_easy_perform(curl); + curl_easy_setopt(curl, CURLOPT_VERBOSE, 1); /* show verbose for debug */ + curl_easy_setopt(curl, CURLOPT_HEADER, 1); /* include header */ + + /* Now, we should be making a fine HEAD request */ + + /* Perform the request 2, res will get the return code */ + res = curl_easy_perform(curl); + + /* always cleanup */ + curl_easy_cleanup(curl); + curl_global_cleanup(); - /* always cleanup */ - curl_easy_cleanup(curl); - } return (int)res; } -- cgit v1.2.3