summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xindra/llcorehttp/httpcommon.cpp17
-rwxr-xr-xindra/llcorehttp/httpcommon.h1
-rwxr-xr-xindra/newview/llappviewer.cpp1
3 files changed, 19 insertions, 0 deletions
diff --git a/indra/llcorehttp/httpcommon.cpp b/indra/llcorehttp/httpcommon.cpp
index c606f2b754..c423047bb0 100755
--- a/indra/llcorehttp/httpcommon.cpp
+++ b/indra/llcorehttp/httpcommon.cpp
@@ -350,6 +350,11 @@ void deallocateEasyCurl(CURL *curlp)
//static
void ssl_locking_callback(int mode, int type, const char *file, int line)
{
+ if (type >= sSSLMutex.size())
+ {
+ LL_WARNS() << "Attempt to get unknown MUTEX in SSL Lock." << LL_ENDL;
+ }
+
if (mode & CRYPTO_LOCK)
{
sSSLMutex[type]->lock();
@@ -392,6 +397,18 @@ void initialize()
}
+void cleanup()
+{
+#if SAFE_SSL
+ CRYPTO_set_id_callback(NULL);
+ CRYPTO_set_locking_callback(NULL);
+ sSSLMutex.clear();
+#endif
+
+ curl_global_cleanup();
+}
+
+
CURL_ptr createEasyHandle()
{
LLMutexLock lock(getCurlMutex());
diff --git a/indra/llcorehttp/httpcommon.h b/indra/llcorehttp/httpcommon.h
index 3e98600a92..1bc20fe6b5 100755
--- a/indra/llcorehttp/httpcommon.h
+++ b/indra/llcorehttp/httpcommon.h
@@ -497,6 +497,7 @@ namespace LLHttp
typedef boost::shared_ptr<CURL> CURL_ptr;
void initialize();
+ void cleanup();
CURL_ptr createEasyHandle();
std::string getCURLVersion();
diff --git a/indra/newview/llappviewer.cpp b/indra/newview/llappviewer.cpp
index 5cf9efa04e..44c9f893b8 100755
--- a/indra/newview/llappviewer.cpp
+++ b/indra/newview/llappviewer.cpp
@@ -2077,6 +2077,7 @@ bool LLAppViewer::cleanup()
}
LL_INFOS() << "Cleaning up LLProxy." << LL_ENDL;
LLProxy::cleanupClass();
+ LLCore::LLHttp::cleanup();
LLWearableType::cleanupClass();