Commit d7d8a0ee authored by Juan Lang's avatar Juan Lang Committed by Alexandre Julliard

winhttp: Unload OpenSSL when unloading winhttp.

parent 349e8250
......@@ -42,6 +42,7 @@ BOOL WINAPI DllMain(HINSTANCE hInstDLL, DWORD fdwReason, LPVOID lpv)
DisableThreadLibraryCalls(hInstDLL);
break;
case DLL_PROCESS_DETACH:
netconn_unload();
break;
}
return TRUE;
......
......@@ -97,6 +97,7 @@ static SSL_CTX *ctx;
MAKE_FUNCPTR( SSL_library_init );
MAKE_FUNCPTR( SSL_load_error_strings );
MAKE_FUNCPTR( SSLv23_method );
MAKE_FUNCPTR( SSL_CTX_free );
MAKE_FUNCPTR( SSL_CTX_new );
MAKE_FUNCPTR( SSL_new );
MAKE_FUNCPTR( SSL_free );
......@@ -221,6 +222,7 @@ BOOL netconn_init( netconn_t *conn, BOOL secure )
LOAD_FUNCPTR( SSL_library_init );
LOAD_FUNCPTR( SSL_load_error_strings );
LOAD_FUNCPTR( SSLv23_method );
LOAD_FUNCPTR( SSL_CTX_free );
LOAD_FUNCPTR( SSL_CTX_new );
LOAD_FUNCPTR( SSL_new );
LOAD_FUNCPTR( SSL_free );
......@@ -270,6 +272,20 @@ BOOL netconn_init( netconn_t *conn, BOOL secure )
return TRUE;
}
void netconn_unload( void )
{
#if defined(SONAME_LIBSSL) && defined(SONAME_LIBCRYPTO)
if (libcrypto_handle)
wine_dlclose( libcrypto_handle, NULL, 0 );
if (libssl_handle)
{
if (ctx)
pSSL_CTX_free( ctx );
wine_dlclose( libssl_handle, NULL, 0 );
}
#endif
}
BOOL netconn_connected( netconn_t *conn )
{
return (conn->socket != -1);
......
......@@ -215,6 +215,7 @@ BOOL netconn_connected( netconn_t * );
BOOL netconn_create( netconn_t *, int, int, int );
BOOL netconn_get_next_line( netconn_t *, char *, DWORD * );
BOOL netconn_init( netconn_t *, BOOL );
void netconn_unload( void );
BOOL netconn_query_data_available( netconn_t *, DWORD * );
BOOL netconn_recv( netconn_t *, void *, size_t, int, int * );
BOOL netconn_resolve( WCHAR *, INTERNET_PORT, struct sockaddr *, socklen_t * );
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment