From 424e73a89573b6f59f053f077143f04b7397edbe Mon Sep 17 00:00:00 2001 From: Kobi Mizrachi Date: Tue, 21 Jan 2020 09:15:46 +0200 Subject: [PATCH] server: proxy: modules_init: create modules dir if not exists --- server/proxy/pf_modules.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/server/proxy/pf_modules.c b/server/proxy/pf_modules.c index 0807a38ea..3357b5c92 100644 --- a/server/proxy/pf_modules.c +++ b/server/proxy/pf_modules.c @@ -319,8 +319,19 @@ BOOL pf_modules_init(const char* modules_directory) WIN32_FIND_DATA ffd; char* find_path; + if (!PathFileExistsA(modules_directory)) + { + if (!CreateDirectoryA(modules_directory, NULL)) + { + WLog_ERR(TAG, "error occurred while creating modules directory: %s", modules_directory); + return FALSE; + } + + return TRUE; + } + WLog_DBG(TAG, "searching plugins in directory %s", modules_directory); - find_path = GetCombinedPath(modules_directory, "*"); + find_path = GetCombinedPath(modules_directory, "*.so"); hFind = FindFirstFile(find_path, &ffd); free(find_path); @@ -351,11 +362,7 @@ BOOL pf_modules_init(const char* modules_directory) if ((ffd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) == 0) { char* fullpath = GetCombinedPath(modules_directory, ffd.cFileName); - char* dot = strrchr(ffd.cFileName, '.'); - - if (dot && strcmp(dot, FREERDP_SHARED_LIBRARY_SUFFIX) == 0) - pf_modules_load_module(fullpath); - + pf_modules_load_module(fullpath); free(fullpath); } } while (FindNextFile(hFind, &ffd) != 0);