Loading lib/easy.c +15 −1 Original line number Diff line number Diff line Loading @@ -73,16 +73,30 @@ #include "urldata.h" #include <curl/curl.h> #include "transfer.h" #include <curl/types.h> #include "ssluse.h" #define _MPRINTF_REPLACE /* use our functions only */ #include <curl/mprintf.h> CURLcode curl_global_init(void) { Curl_SSL_init(); return CURLE_OK; } void curl_global_cleanup(void) { Curl_SSL_cleanup(); } CURL *curl_easy_init(void) { CURLcode res; struct UrlData *data; /* Make sure we inited the global SSL stuff */ Curl_SSL_init(); /* We use curl_open() with undefined URL so far */ res = Curl_open((CURL **)&data, NULL); if(res != CURLE_OK) Loading lib/ssluse.c +34 −6 Original line number Diff line number Diff line Loading @@ -235,6 +235,40 @@ int cert_verify_callback(int ok, X509_STORE_CTX *ctx) #endif /* Global init */ void Curl_SSL_init(void) { #ifdef USE_SSLEAY static int only_once=0; /* make sure this is only done once */ if(0 != only_once) return; only_once++; /* never again */ /* Lets get nice error messages */ SSL_load_error_strings(); /* Setup all the global SSL stuff */ SSLeay_add_ssl_algorithms(); #endif } /* Global cleanup */ void Curl_SSL_cleanup(void) { #ifdef USE_SSLEAY /* Free the SSL error strings */ ERR_free_strings(); /* EVP_cleanup() removes all ciphers and digests from the table. */ EVP_cleanup(); #endif } /* ====================================================== */ CURLcode Curl_SSLConnect(struct connectdata *conn) Loading @@ -250,15 +284,9 @@ Curl_SSLConnect(struct connectdata *conn) /* mark this is being ssl enabled from here on out. */ conn->ssl.use = TRUE; /* Lets get nice error messages */ SSL_load_error_strings(); /* Make funny stuff to get random input */ random_the_seed(conn); /* Setup all the global SSL stuff */ SSLeay_add_ssl_algorithms(); switch(data->ssl.version) { default: req_method = SSLv23_client_method(); Loading lib/ssluse.h +4 −0 Original line number Diff line number Diff line Loading @@ -24,4 +24,8 @@ *****************************************************************************/ #include "urldata.h" CURLcode Curl_SSLConnect(struct connectdata *conn); /* Global SSL init */ void Curl_SSL_init(void); /* Global SSL cleanup */ void Curl_SSL_cleanup(void); #endif lib/url.c +11 −0 Original line number Diff line number Diff line Loading @@ -833,6 +833,17 @@ CURLcode Curl_disconnect(struct connectdata *conn) #ifdef USE_SSLEAY if (conn->ssl.use) { /* ERR_remove_state() frees the error queue associated with thread pid. If pid == 0, the current thread will have its error queue removed. Since error queue data structures are allocated automatically for new threads, they must be freed when threads are terminated in oder to avoid memory leaks. */ ERR_remove_state(0); if(conn->ssl.handle) { (void)SSL_shutdown(conn->ssl.handle); SSL_set_connect_state(conn->ssl.handle); Loading Loading
lib/easy.c +15 −1 Original line number Diff line number Diff line Loading @@ -73,16 +73,30 @@ #include "urldata.h" #include <curl/curl.h> #include "transfer.h" #include <curl/types.h> #include "ssluse.h" #define _MPRINTF_REPLACE /* use our functions only */ #include <curl/mprintf.h> CURLcode curl_global_init(void) { Curl_SSL_init(); return CURLE_OK; } void curl_global_cleanup(void) { Curl_SSL_cleanup(); } CURL *curl_easy_init(void) { CURLcode res; struct UrlData *data; /* Make sure we inited the global SSL stuff */ Curl_SSL_init(); /* We use curl_open() with undefined URL so far */ res = Curl_open((CURL **)&data, NULL); if(res != CURLE_OK) Loading
lib/ssluse.c +34 −6 Original line number Diff line number Diff line Loading @@ -235,6 +235,40 @@ int cert_verify_callback(int ok, X509_STORE_CTX *ctx) #endif /* Global init */ void Curl_SSL_init(void) { #ifdef USE_SSLEAY static int only_once=0; /* make sure this is only done once */ if(0 != only_once) return; only_once++; /* never again */ /* Lets get nice error messages */ SSL_load_error_strings(); /* Setup all the global SSL stuff */ SSLeay_add_ssl_algorithms(); #endif } /* Global cleanup */ void Curl_SSL_cleanup(void) { #ifdef USE_SSLEAY /* Free the SSL error strings */ ERR_free_strings(); /* EVP_cleanup() removes all ciphers and digests from the table. */ EVP_cleanup(); #endif } /* ====================================================== */ CURLcode Curl_SSLConnect(struct connectdata *conn) Loading @@ -250,15 +284,9 @@ Curl_SSLConnect(struct connectdata *conn) /* mark this is being ssl enabled from here on out. */ conn->ssl.use = TRUE; /* Lets get nice error messages */ SSL_load_error_strings(); /* Make funny stuff to get random input */ random_the_seed(conn); /* Setup all the global SSL stuff */ SSLeay_add_ssl_algorithms(); switch(data->ssl.version) { default: req_method = SSLv23_client_method(); Loading
lib/ssluse.h +4 −0 Original line number Diff line number Diff line Loading @@ -24,4 +24,8 @@ *****************************************************************************/ #include "urldata.h" CURLcode Curl_SSLConnect(struct connectdata *conn); /* Global SSL init */ void Curl_SSL_init(void); /* Global SSL cleanup */ void Curl_SSL_cleanup(void); #endif
lib/url.c +11 −0 Original line number Diff line number Diff line Loading @@ -833,6 +833,17 @@ CURLcode Curl_disconnect(struct connectdata *conn) #ifdef USE_SSLEAY if (conn->ssl.use) { /* ERR_remove_state() frees the error queue associated with thread pid. If pid == 0, the current thread will have its error queue removed. Since error queue data structures are allocated automatically for new threads, they must be freed when threads are terminated in oder to avoid memory leaks. */ ERR_remove_state(0); if(conn->ssl.handle) { (void)SSL_shutdown(conn->ssl.handle); SSL_set_connect_state(conn->ssl.handle); Loading