From 89979c595a7711925499db9045cdc25e330b9f36 Mon Sep 17 00:00:00 2001 From: George Hazan Date: Thu, 16 Feb 2017 22:59:10 +0300 Subject: OpenSSL: dynamic dll loading removed --- plugins/OpenSSL/src/main.cpp | 20 -------- plugins/OpenSSL/src/ssl_openssl.cpp | 30 +++--------- plugins/OpenSSL/src/stdafx.h | 96 ++++++++++++++++++------------------- plugins/OpenSSL/src/version.h | 2 +- 4 files changed, 54 insertions(+), 94 deletions(-) diff --git a/plugins/OpenSSL/src/main.cpp b/plugins/OpenSSL/src/main.cpp index 7f03981446..e523acc96d 100644 --- a/plugins/OpenSSL/src/main.cpp +++ b/plugins/OpenSSL/src/main.cpp @@ -23,26 +23,6 @@ with this program; if not, write to the Free Software Foundation, Inc., int LoadSslModule(void); void UnloadSslModule(void); -HMODULE g_hOpenSSL; -HMODULE g_hOpenSSLCrypto; -HMODULE g_hWinCrypt; - -FARPROC WINAPI delayHook(unsigned dliNotify, PDelayLoadInfo dli) -{ - switch (dliNotify) { - case dliNotePreLoadLibrary: - if (!strcmpi(dli->szDll, "libeay32.dll")) - return (FARPROC)g_hOpenSSLCrypto; - else if (!strcmpi(dli->szDll, "ssleay32.dll")) - return (FARPROC)g_hOpenSSL; - else if (!strcmpi(dli->szDll, "crypt32.dll")) - return (FARPROC)g_hWinCrypt; - } - return NULL; -} - -extern "C" PfnDliHook __pfnDliNotifyHook2 = delayHook; - HINSTANCE hInst; int hLangpack; diff --git a/plugins/OpenSSL/src/ssl_openssl.cpp b/plugins/OpenSSL/src/ssl_openssl.cpp index 6f0791475b..6340fcf09d 100644 --- a/plugins/OpenSSL/src/ssl_openssl.cpp +++ b/plugins/OpenSSL/src/ssl_openssl.cpp @@ -59,16 +59,7 @@ static void SSL_library_unload(void) WaitForSingleObject(g_hSslMutex, INFINITE); - FreeLibrary(g_hOpenSSL); - g_hOpenSSL = NULL; - - FreeLibrary(g_hOpenSSLCrypto); - g_hOpenSSLCrypto = NULL; - FreeLibrary(g_hWinCrypt); - g_hWinCrypt = NULL; - bSslInitDone = false; - ReleaseMutex(g_hSslMutex); } @@ -80,20 +71,13 @@ static bool SSL_library_load(void) WaitForSingleObject(g_hSslMutex, INFINITE); - if (!bSslInitDone) { - g_hOpenSSLCrypto = LoadLibraryA("libeay32.dll"); - g_hOpenSSL = LoadLibraryA("ssleay32.dll"); - g_hWinCrypt = LoadLibraryA("crypt32.dll"); - if (g_hOpenSSL && g_hOpenSSLCrypto && g_hWinCrypt) { - // init OpenSSL - SSL_library_init(); - SSL_load_error_strings(); - CRYPTO_set_mem_functions(mir_calloc, mir_realloc, mir_free); - // FIXME check errors - - bSslInitDone = true; - } - else SSL_library_unload(); + if (!bSslInitDone) { // init OpenSSL + SSL_library_init(); + SSL_load_error_strings(); + CRYPTO_set_mem_functions(mir_calloc, mir_realloc, mir_free); + // FIXME check errors + + bSslInitDone = true; } return bSslInitDone; diff --git a/plugins/OpenSSL/src/stdafx.h b/plugins/OpenSSL/src/stdafx.h index a6a030d8c6..4a218daaa4 100644 --- a/plugins/OpenSSL/src/stdafx.h +++ b/plugins/OpenSSL/src/stdafx.h @@ -1,51 +1,47 @@ -/* - -Miranda NG: the free IM client for Microsoft* Windows* - -Copyright (c) 2012-17 Miranda NG project (http://miranda-ng.org), -Copyright (c) 2000-12 Miranda IM project, -all portions of this codebase are copyrighted to the people -listed in contributors.txt. - -This program is free software; you can redistribute it and/or -modify it under the terms of the GNU General Public License -as published by the Free Software Foundation; either version 2 -of the License, or (at your option) any later version. - -This program is distributed in the hope that it will be useful, -but WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -GNU General Public License for more details. - -You should have received a copy of the GNU General Public License -along with this program; if not, write to the Free Software -Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -*/ - -#define SECURITY_WIN32 -#define HSSL_DEFINED - -typedef struct SslHandle *HSSL; - -#include -#include - +/* + +Miranda NG: the free IM client for Microsoft* Windows* + +Copyright (c) 2012-17 Miranda NG project (http://miranda-ng.org), +Copyright (c) 2000-12 Miranda IM project, +all portions of this codebase are copyrighted to the people +listed in contributors.txt. + +This program is free software; you can redistribute it and/or +modify it under the terms of the GNU General Public License +as published by the Free Software Foundation; either version 2 +of the License, or (at your option) any later version. + +This program is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with this program; if not, write to the Free Software +Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +*/ + +#define SECURITY_WIN32 +#define HSSL_DEFINED + +typedef struct SslHandle *HSSL; + +#include +#include + #define DELAYIMP_INSECURE_WRITABLE_HOOKS -#include - -#include -#include -#include -#include -#include - -#include -#include - -#include "version.h" - -extern HMODULE g_hOpenSSL; -extern HMODULE g_hOpenSSLCrypto; -extern HMODULE g_hWinCrypt; - -extern HINSTANCE hInst; +#include + +#include +#include +#include +#include +#include + +#include +#include + +#include "version.h" + +extern HINSTANCE hInst; diff --git a/plugins/OpenSSL/src/version.h b/plugins/OpenSSL/src/version.h index 12fd564a50..58237f9912 100644 --- a/plugins/OpenSSL/src/version.h +++ b/plugins/OpenSSL/src/version.h @@ -1,7 +1,7 @@ #define __MAJOR_VERSION 0 #define __MINOR_VERSION 1 #define __RELEASE_NUM 0 -#define __BUILD_NUM 1 +#define __BUILD_NUM 2 #include -- cgit v1.2.3