From 6173e38fdcf5a9db84be511dfcf0037b8339c0bb Mon Sep 17 00:00:00 2001 From: Daniel Stenberg Date: Wed, 11 Mar 2009 22:56:03 +0000 Subject: - Kamil Dudka made the curl tool properly call curl_global_init() before any other libcurl function. --- CHANGES | 4 ++++ include/curl/curl.h | 4 +++- src/main.c | 10 ++++++---- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/CHANGES b/CHANGES index d68072cac..682a03f51 100644 --- a/CHANGES +++ b/CHANGES @@ -6,6 +6,10 @@ Changelog +Daniel Stenberg (11 Mar 2009) +- Kamil Dudka made the curl tool properly call curl_global_init() before any + other libcurl function. + Yang Tse (11 Mar 2009) - Added missing TELNET timeout support for Windows builds. This issue was reported by Pierre Brico. diff --git a/include/curl/curl.h b/include/curl/curl.h index 8d952caab..7ecb6317b 100644 --- a/include/curl/curl.h +++ b/include/curl/curl.h @@ -1510,7 +1510,9 @@ CURL_EXTERN void curl_free(void *p); * DESCRIPTION * * curl_global_init() should be invoked exactly once for each application that - * uses libcurl + * uses libcurl and before any call of other libcurl function. + * + * This function is not thread-safe! */ CURL_EXTERN CURLcode curl_global_init(long flags); diff --git a/src/main.c b/src/main.c index aabd659fe..26fa3c85b 100644 --- a/src/main.c +++ b/src/main.c @@ -3969,6 +3969,12 @@ operate(struct Configurable *config, int argc, argv_item_t argv[]) memset(&heads, 0, sizeof(struct OutStruct)); + /* initialize curl library - do not call any libcurl functions before */ + if (main_init() != CURLE_OK) { + helpf(config->errors, "error initializing curl library\n"); + return CURLE_FAILED_INIT; + } + #ifdef CURLDEBUG /* this sends all memory debug messages to a logfile named memdump */ env = curlx_getenv("CURL_MEMDEBUG"); @@ -4015,10 +4021,6 @@ operate(struct Configurable *config, int argc, argv_item_t argv[]) #endif /* inits */ - if (main_init() != CURLE_OK) { - helpf(config->errors, "error initializing curl library\n"); - return CURLE_FAILED_INIT; - } config->postfieldsize = -1; config->showerror=TRUE; config->use_httpget=FALSE; -- cgit v1.2.3