aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGES4
-rw-r--r--include/curl/curl.h4
-rw-r--r--src/main.c10
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;