From e051f904f2bb80474277ad792ee6077126b8890a Mon Sep 17 00:00:00 2001 From: Sterling Hughes Date: Thu, 31 May 2001 11:30:34 +0000 Subject: Test and substance patch. This is my first CVS commit :), what it does: - Makes sure that parts of the cURL library don't get initialized twice - Makes sure that we only free what we initialize --- lib/easy.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'lib/easy.c') diff --git a/lib/easy.c b/lib/easy.c index 4639bacd2..0099d6be1 100644 --- a/lib/easy.c +++ b/lib/easy.c @@ -78,17 +78,27 @@ #define _MPRINTF_REPLACE /* use our functions only */ #include +/* true globals */ +static unsigned int initialized = 0; +static long init_flags = 0; + CURLcode curl_global_init(long flags) { if(flags & CURL_GLOBAL_SSL) Curl_SSL_init(); + initialized = 1; + init_flags = flags; + return CURLE_OK; } void curl_global_cleanup(void) { - Curl_SSL_cleanup(); + if (init_flags & CURL_GLOBAL_SSL) + Curl_SSL_cleanup(); + + initialized = 0; } CURL *curl_easy_init(void) @@ -97,7 +107,8 @@ CURL *curl_easy_init(void) struct UrlData *data; /* Make sure we inited the global SSL stuff */ - Curl_SSL_init(); + if (!initialized) + curl_global_init(CURL_GLOBAL_DEFAULT); /* We use curl_open() with undefined URL so far */ res = Curl_open((CURL **)&data, NULL); -- cgit v1.2.3