From 86d00f438ce92e40f72dcbcd60738a66fa8d5ae8 Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Tue, 14 Aug 2018 08:13:37 +0200 Subject: [PATCH] init: Fix DllMain Signed-off-by: Andreas Schneider --- src/init.c | 26 +++++++++++++++++--------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/init.c b/src/init.c index ea3e6432..dc8d8cef 100644 --- a/src/init.c +++ b/src/init.c @@ -226,19 +226,27 @@ int ssh_finalize(void) { #ifdef _MSC_VER /* Library constructor and destructor */ -BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) +BOOL WINAPI DllMain(HINSTANCE hinstDLL, + DWORD fdwReason, + LPVOID lpvReserved) { - int rc; + int rc = 0; - if (fdwReason == DLL_PROCESS_ATTACH) { - rc = ssh_init(); - } else if (fdwReason == DLL_PROCESS_DETACH) { - rc = ssh_finalize(); + switch(fdwReason) { + case DLL_PROCESS_ATTACH: + rc = _ssh_init(1); + if (rc != 0) { + fprintf(stderr, "DllMain: ssh_init failed!"); + return FALSE; + } + break; + case DLL_PROCESS_DETACH: + _ssh_finalize(1); + break; + default: + break; } - if (rc != 0) { - return FALSE; - } return TRUE; } #endif /* _MSC_VER */