commit 02bb701bba5fb6b5eb6ce5716b8fff9fd2c5e028 Author: Nick Mathewson nickm@torproject.org Date: Thu Jun 28 13:37:51 2018 -0400
Move DLL support to lib/fs --- src/common/util.c | 15 --------------- src/common/util.h | 5 +---- src/lib/fs/include.am | 7 ++++++- src/lib/fs/winlib.c | 21 +++++++++++++++++++++ src/lib/fs/winlib.h | 16 ++++++++++++++++ 5 files changed, 44 insertions(+), 20 deletions(-)
diff --git a/src/common/util.c b/src/common/util.c index b31bb834e..135af77c6 100644 --- a/src/common/util.c +++ b/src/common/util.c @@ -134,18 +134,3 @@ ENABLE_GCC_WARNING(aggregate-return) /* ===== * Time * ===== */ - -#ifdef _WIN32 -HANDLE -load_windows_system_library(const TCHAR *library_name) -{ - TCHAR path[MAX_PATH]; - unsigned n; - n = GetSystemDirectory(path, MAX_PATH); - if (n == 0 || n + _tcslen(library_name) + 2 >= MAX_PATH) - return 0; - _tcscat(path, TEXT("\")); - _tcscat(path, library_name); - return LoadLibrary(path); -} -#endif /* defined(_WIN32) */ diff --git a/src/common/util.h b/src/common/util.h index f174cd366..ffd958c42 100644 --- a/src/common/util.h +++ b/src/common/util.h @@ -40,6 +40,7 @@ #include "lib/fs/path.h" #include "lib/encoding/time_fmt.h" #include "lib/encoding/cstring.h" +#include "lib/fs/winlib.h"
void tor_log_mallinfo(int severity);
@@ -76,8 +77,4 @@ void tor_log_mallinfo(int severity); ((isSock) ? read_all_from_socket((fd), (buf), (count)) \ : read_all_from_fd((int)(fd), (buf), (count)))
-#ifdef _WIN32 -HANDLE load_windows_system_library(const TCHAR *library_name); -#endif - #endif /* !defined(TOR_UTIL_H) */ diff --git a/src/lib/fs/include.am b/src/lib/fs/include.am index 0256c0f2f..a025eb81c 100644 --- a/src/lib/fs/include.am +++ b/src/lib/fs/include.am @@ -15,6 +15,10 @@ src_lib_libtor_fs_a_SOURCES = \ src/lib/fs/storagedir.c \ src/lib/fs/userdb.c
+if WIN32 +src_lib_libtor_fs_a_SOURCES += src/lib/fs/winlib.c +endif + src_lib_libtor_fs_testing_a_SOURCES = \ $(src_lib_libtor_fs_a_SOURCES) src_lib_libtor_fs_testing_a_CPPFLAGS = $(AM_CPPFLAGS) $(TEST_CPPFLAGS) @@ -28,4 +32,5 @@ noinst_HEADERS += \ src/lib/fs/mmap.h \ src/lib/fs/path.h \ src/lib/fs/storagedir.h \ - src/lib/fs/userdb.h + src/lib/fs/userdb.h \ + src/lib/fs/winlib.h diff --git a/src/lib/fs/winlib.c b/src/lib/fs/winlib.c new file mode 100644 index 000000000..7a88a841a --- /dev/null +++ b/src/lib/fs/winlib.c @@ -0,0 +1,21 @@ +/* Copyright (c) 2003, Roger Dingledine + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +#ifdef _WIN32 +#include "lib/fs/winlib.h" + +HANDLE +load_windows_system_library(const TCHAR *library_name) +{ + TCHAR path[MAX_PATH]; + unsigned n; + n = GetSystemDirectory(path, MAX_PATH); + if (n == 0 || n + _tcslen(library_name) + 2 >= MAX_PATH) + return 0; + _tcscat(path, TEXT("\")); + _tcscat(path, library_name); + return LoadLibrary(path); +} +#endif /* defined(_WIN32) */ diff --git a/src/lib/fs/winlib.h b/src/lib/fs/winlib.h new file mode 100644 index 000000000..f53f04645 --- /dev/null +++ b/src/lib/fs/winlib.h @@ -0,0 +1,16 @@ +/* Copyright (c) 2003, Roger Dingledine + * Copyright (c) 2004-2006, Roger Dingledine, Nick Mathewson. + * Copyright (c) 2007-2018, The Tor Project, Inc. */ +/* See LICENSE for licensing information */ + +#ifndef TOR_WINLIB_H +#define TOR_WINLIB_H + +#ifdef _WIN32 +#include <windows.h> +#include <tchar.h> + +HANDLE load_windows_system_library(const TCHAR *library_name); +#endif + +#endif
tor-commits@lists.torproject.org