diff options
| author | Odd Stranne <odd@mullvad.net> | 2019-11-29 13:36:23 +0100 |
|---|---|---|
| committer | Odd Stranne <odd@mullvad.net> | 2019-12-04 13:08:01 +0100 |
| commit | 9f91608ec56bbc150fe66277d1fa90d9274b7283 (patch) | |
| tree | 8c10b28f19296c1ef970d6c2d88b73cf39503800 | |
| parent | ae8aa15aad804564c58a23a5b9a50f821c317966 (diff) | |
| download | mullvadvpn-9f91608ec56bbc150fe66277d1fa90d9274b7283.tar.xz mullvadvpn-9f91608ec56bbc150fe66277d1fa90d9274b7283.zip | |
Update logging in windns
| -rw-r--r-- | windows/windns/src/windns/confineoperation.cpp | 91 | ||||
| -rw-r--r-- | windows/windns/src/windns/confineoperation.h | 23 | ||||
| -rw-r--r-- | windows/windns/src/windns/ilogsink.h | 31 | ||||
| -rw-r--r-- | windows/windns/src/windns/logsink.cpp | 34 | ||||
| -rw-r--r-- | windows/windns/src/windns/logsink.h | 21 | ||||
| -rw-r--r-- | windows/windns/src/windns/netsh.cpp | 42 | ||||
| -rw-r--r-- | windows/windns/src/windns/netsh.h | 28 | ||||
| -rw-r--r-- | windows/windns/src/windns/windns.cpp | 123 | ||||
| -rw-r--r-- | windows/windns/src/windns/windns.h | 17 | ||||
| -rw-r--r-- | windows/windns/src/windns/windns.vcxproj | 19 | ||||
| -rw-r--r-- | windows/windns/src/windns/windns.vcxproj.filters | 3 | ||||
| -rw-r--r-- | windows/windns/windns.sln | 5 |
12 files changed, 106 insertions, 331 deletions
diff --git a/windows/windns/src/windns/confineoperation.cpp b/windows/windns/src/windns/confineoperation.cpp index a43bbd0d2e..5097986c0f 100644 --- a/windows/windns/src/windns/confineoperation.cpp +++ b/windows/windns/src/windns/confineoperation.cpp @@ -5,7 +5,7 @@ bool ConfineOperation ( const char *literalOperation, - std::function<void(const char *, const char **, uint32_t)> errorCallback, + std::shared_ptr<common::logging::ILogSink> logSink, std::function<void()> operation ) { @@ -14,29 +14,11 @@ bool ConfineOperation operation(); return true; } - catch (NetShError &err) - { - auto raw = CreateRawStringArray(err.details()); - - const char **details = reinterpret_cast<const char **>(&raw[0]); - uint32_t numDetails = static_cast<uint32_t>(err.details().size()); - - if (0 == numDetails) - { - details = nullptr; - } - - const auto what = std::string(literalOperation).append(": ").append(err.what()); - - errorCallback(what.c_str(), details, numDetails); - - return false; - } - catch (std::exception &err) + catch (const std::exception &err) { const auto what = std::string(literalOperation).append(": ").append(err.what()); - errorCallback(what.c_str(), nullptr, 0); + logSink->error(what.c_str()); return false; } @@ -44,73 +26,8 @@ bool ConfineOperation { const auto what = std::string(literalOperation).append(": Unspecified failure"); - errorCallback(what.c_str(), nullptr, 0); + logSink->error(what.c_str()); return false; } } - -bool ConfineOperation -( - const char *literalOperation, - ILogSink *logSink, - std::function<void()> operation -) -{ - auto ForwardError = [logSink](const char *error, const char **details, uint32_t numDetails) - { - if (nullptr != logSink) - { - logSink->error(error, details, numDetails); - } - }; - - return ConfineOperation(literalOperation, ForwardError, operation); -} - -std::vector<uint8_t> CreateRawStringArray(const std::vector<std::string> &arr) -{ - // - // Return a buffer containing a nullptr if there are no items in the array. - // This enables clients of this function to address the pointer table. - // - - if (arr.empty()) - { - return std::vector<uint8_t>(sizeof(char *), 0); - } - - // - // Determine total size needed. - // - - size_t bufferSize = 0; - - for (const auto &str : arr) - { - bufferSize += sizeof(char *); - bufferSize += (str.size() + 1); - } - - // - // Copy strings and populate pointer table. - // - - std::vector<uint8_t> buffer(bufferSize, 0); - - char **pointerTable = reinterpret_cast<char**>(&buffer[0]); - char *data = reinterpret_cast<char*>(&buffer[0] + (sizeof(char*) * arr.size())); - - for (const auto &str : arr) - { - const auto fullStringSize = str.size() + 1; - - *pointerTable = data; - memcpy(data, str.c_str(), fullStringSize); - - ++pointerTable; - data += fullStringSize; - } - - return buffer; -} diff --git a/windows/windns/src/windns/confineoperation.h b/windows/windns/src/windns/confineoperation.h index 4c37058da2..56aa48a929 100644 --- a/windows/windns/src/windns/confineoperation.h +++ b/windows/windns/src/windns/confineoperation.h @@ -1,6 +1,6 @@ #pragma once -#include "ilogsink.h" +#include <libcommon/logging/ilogsink.h> #include <functional> #include <vector> #include <string> @@ -9,25 +9,6 @@ bool ConfineOperation ( const char *literalOperation, - std::function<void(const char *, const char **, uint32_t)> errorCallback, + std::shared_ptr<common::logging::ILogSink> logSink, std::function<void()> operation ); - -bool ConfineOperation -( - const char *literalOperation, - ILogSink *logSink, - std::function<void()> operation -); - -// -// The returned buffer looks like this: -// -// string pointer 1 -// string pointer 2 -// string pointer n -// string 1 -// string 2 -// string n -// -std::vector<uint8_t> CreateRawStringArray(const std::vector<std::string> &arr); diff --git a/windows/windns/src/windns/ilogsink.h b/windows/windns/src/windns/ilogsink.h deleted file mode 100644 index 0d39b172b2..0000000000 --- a/windows/windns/src/windns/ilogsink.h +++ /dev/null @@ -1,31 +0,0 @@ -#pragma once - -#include "windns.h" -#include <cstdint> - -struct LogSinkInfo -{ - WinDnsLogSink sink; - void* context; -}; - -struct ILogSink -{ - virtual ~ILogSink() = 0 - { - } - - virtual void error(const char *msg, const char **details, uint32_t numDetails) = 0; - - virtual void error(const char *msg) - { - error(msg, nullptr, 0); - } - - virtual void info(const char *msg, const char **details, uint32_t numDetails) = 0; - - virtual void info(const char *msg) - { - info(msg, nullptr, 0); - } -}; diff --git a/windows/windns/src/windns/logsink.cpp b/windows/windns/src/windns/logsink.cpp deleted file mode 100644 index b5f127d25c..0000000000 --- a/windows/windns/src/windns/logsink.cpp +++ /dev/null @@ -1,34 +0,0 @@ -#include "stdafx.h" -#include "logsink.h" - -LogSink::LogSink(const LogSinkInfo &target) - : m_target(target) -{ -} - -void LogSink::setTarget(const LogSinkInfo &target) -{ - std::scoped_lock<std::mutex> lock(m_targetMutex); - - m_target = target; -} - -void LogSink::error(const char *msg, const char **details, uint32_t numDetails) -{ - std::scoped_lock<std::mutex> lock(m_targetMutex); - - if (nullptr != m_target.sink) - { - m_target.sink(WINDNS_LOG_CATEGORY_ERROR, msg, details, numDetails, m_target.context); - } -} - -void LogSink::info(const char *msg, const char **details, uint32_t numDetails) -{ - std::scoped_lock<std::mutex> lock(m_targetMutex); - - if (nullptr != m_target.sink) - { - m_target.sink(WINDNS_LOG_CATEGORY_INFO, msg, details, numDetails, m_target.context); - } -} diff --git a/windows/windns/src/windns/logsink.h b/windows/windns/src/windns/logsink.h deleted file mode 100644 index 236c8e3242..0000000000 --- a/windows/windns/src/windns/logsink.h +++ /dev/null @@ -1,21 +0,0 @@ -#pragma once - -#include "ilogsink.h" -#include <mutex> - -class LogSink : public ILogSink -{ -public: - - LogSink(const LogSinkInfo &target); - - void setTarget(const LogSinkInfo &target); - - void error(const char *msg, const char **details, uint32_t numDetails) override; - void info(const char *msg, const char **details, uint32_t numDetails) override; - -private: - - std::mutex m_targetMutex; - LogSinkInfo m_target; -}; diff --git a/windows/windns/src/windns/netsh.cpp b/windows/windns/src/windns/netsh.cpp index 8e1df6a44e..d8354e4e0b 100644 --- a/windows/windns/src/windns/netsh.cpp +++ b/windows/windns/src/windns/netsh.cpp @@ -11,34 +11,9 @@ namespace { -std::vector<std::string> BlockToRows(const std::string &textBlock) -{ - // - // TODO: Formalize and move to libcommon. - // There is a recurring need to split a text block into lines, ignoring blank lines. - // - // Also, changing the encoding back and forth is terribly wasteful. - // Should look into replacing all of this with Boost some day. - // - - const auto wideTextBlock = common::string::ToWide(textBlock); - const auto wideRows = common::string::Tokenize(wideTextBlock, L"\r\n"); - - std::vector<std::string> result; - - result.reserve(wideRows.size()); - - std::transform(wideRows.begin(), wideRows.end(), std::back_inserter(result), [](const std::wstring &str) - { - return common::string::ToAnsi(str); - }); - - return result; -} - __declspec(noreturn) void ThrowWithDetails(std::string &&error, common::ApplicationRunner &netsh) { - std::vector<std::string> details { "Failed to capture output from 'netsh'" }; + std::string details("Failed to capture output from 'netsh'"); std::string output; @@ -47,20 +22,17 @@ __declspec(noreturn) void ThrowWithDetails(std::string &&error, common::Applicat if (netsh.read(output, MAX_CHARS, TIMEOUT_MILLISECONDS)) { - auto outputRows = BlockToRows(output); - - if (false == outputRows.empty()) - { - details = std::move(outputRows); - } + details = std::move(output); } - throw NetShError(std::move(error), std::move(details)); + const auto msg = std::string(error).append(": ").append(details); + + throw std::runtime_error(msg.c_str()); } } // anonymous namespace -NetSh::NetSh(std::shared_ptr<ILogSink> logSink) +NetSh::NetSh(std::shared_ptr<common::logging::ILogSink> logSink) : m_logSink(logSink) { const auto system32 = common::fs::GetKnownFolderPath(FOLDERID_System, 0, nullptr); @@ -243,6 +215,6 @@ void NetSh::validateShellOut(common::ApplicationRunner &netsh, uint32_t timeout) << elapsed << " ms of " << actualTimeout << " ms max permitted execution time"; - m_logSink->info(ss.str().c_str(), nullptr, 0); + m_logSink->info(ss.str().c_str()); } } diff --git a/windows/windns/src/windns/netsh.h b/windows/windns/src/windns/netsh.h index d80c55529c..3b0b2b0251 100644 --- a/windows/windns/src/windns/netsh.h +++ b/windows/windns/src/windns/netsh.h @@ -1,6 +1,6 @@ #pragma once -#include "ilogsink.h" +#include <libcommon/logging/ilogsink.h> #include <libcommon/applicationrunner.h> #include <string> #include <vector> @@ -12,7 +12,7 @@ class NetSh { public: - NetSh(std::shared_ptr<ILogSink> logSink); + NetSh(std::shared_ptr<common::logging::ILogSink> logSink); void setIpv4StaticDns(uint32_t interfaceIndex, const std::vector<std::wstring> &nameServers, uint32_t timeout = 0); @@ -26,30 +26,8 @@ public: private: - std::shared_ptr<ILogSink> m_logSink; + std::shared_ptr<common::logging::ILogSink> m_logSink; std::wstring m_netShPath; void validateShellOut(common::ApplicationRunner &netsh, uint32_t timeout); }; - -class NetShError : public std::exception -{ -public: - - NetShError(std::string &&error, std::vector<std::string> &&details) - : std::exception(error.c_str()) - , m_error(std::move(error)) - , m_details(std::move(details)) - { - } - - const std::vector<std::string> &details() - { - return m_details; - } - -private: - - const std::string m_error; - const std::vector<std::string> m_details; -}; diff --git a/windows/windns/src/windns/windns.cpp b/windows/windns/src/windns/windns.cpp index 1ea10f0f08..c0d36e8ad2 100644 --- a/windows/windns/src/windns/windns.cpp +++ b/windows/windns/src/windns/windns.cpp @@ -1,11 +1,12 @@ #include "stdafx.h" #include <libcommon/guid.h> #include <libcommon/string.h> -#include <shared/network/interfaceutils.h> +#include <libshared/network/interfaceutils.h> +#include <libcommon/logging/ilogsink.h> +#include <libshared/logging/logsinkadapter.h> #include "windns.h" #include "confineoperation.h" #include "netsh.h" -#include "logsink.h" #include <memory> #include <vector> #include <string> @@ -28,7 +29,7 @@ bool operator==(const IN6_ADDR &lhs, const IN6_ADDR &rhs) namespace { -std::shared_ptr<LogSink> g_LogSink; +std::shared_ptr<common::logging::ILogSink> g_LogSink; std::shared_ptr<NetSh> g_NetSh; std::vector<std::wstring> MakeStringArray(const wchar_t **strings, uint32_t numStrings) @@ -43,14 +44,6 @@ std::vector<std::wstring> MakeStringArray(const wchar_t **strings, uint32_t numS return v; } -void ForwardError(const char *message, const char **details, uint32_t numDetails) -{ - if (nullptr != g_LogSink) - { - g_LogSink->error(message, details, numDetails); - } -} - uint32_t ConvertInterfaceAliasToIndex(const std::wstring &interfaceAlias) { NET_LUID luid; @@ -184,8 +177,8 @@ WINDNS_LINKAGE bool WINDNS_API WinDns_Initialize( - WinDnsLogSink logSink, - void *logContext + MullvadLogSink logSink, + void *logSinkContext ) { if (g_LogSink) @@ -193,9 +186,9 @@ WinDns_Initialize( return false; } - return ConfineOperation("Initialize", ForwardError, [&]() + try { - g_LogSink = std::make_shared<LogSink>(LogSinkInfo{ logSink, logContext }); + g_LogSink = std::make_shared<shared::logging::LogSinkAdapter>(logSink, logSinkContext); try { @@ -206,7 +199,29 @@ WinDns_Initialize( g_LogSink.reset(); throw; } - }); + + return true; + } + catch (const std::exception &err) + { + if (nullptr != logSink) + { + const auto msg = std::string("Failed to initialize WinDns: ").append(err.what()); + logSink(MULLVAD_LOG_LEVEL_ERROR, msg.c_str(), logSinkContext); + } + + return false; + } + catch (...) + { + if (nullptr != logSink) + { + const std::string msg("Failed to initialize WinDns: Unspecified error"); + logSink(MULLVAD_LOG_LEVEL_ERROR, msg.c_str(), logSinkContext); + } + + return false; + } } WINDNS_LINKAGE @@ -232,53 +247,61 @@ WinDns_Set( uint32_t numIpv6Servers ) { - return ConfineOperation("Apply DNS settings", ForwardError, [&]() + if (nullptr == g_LogSink) { - // - // Check the settings on the adapter. - // If it already has the exact same settings we need, we're done. - // - - try - { - const auto activeSettings = GetAdapterDnsAddresses(interfaceAlias); - const auto wantedSetting = ConvertAddresses(ipv4Servers, numIpv4Servers, ipv6Servers, numIpv6Servers); - - if (Equal(activeSettings, wantedSetting)) - { - std::stringstream ss; + return false; + } - ss << "DNS settings on adapter with alias \"" << common::string::ToAnsi(interfaceAlias) - << "\" are up-to-date"; + // + // Check the settings on the adapter. + // If it already has the exact same settings we need, we're done. + // - g_LogSink->info(ss.str().c_str(), nullptr, 0); + try + { + const auto activeSettings = GetAdapterDnsAddresses(interfaceAlias); + const auto wantedSetting = ConvertAddresses(ipv4Servers, numIpv4Servers, ipv6Servers, numIpv6Servers); - return; - } - } - catch (const std::exception &ex) + if (Equal(activeSettings, wantedSetting)) { std::stringstream ss; - ss << "Failed to evaluate DNS settings on adapter with alias \"" - << common::string::ToAnsi(interfaceAlias) << "\": " << ex.what(); + ss << "DNS settings on adapter with alias \"" << common::string::ToAnsi(interfaceAlias) + << "\" are up-to-date"; + + g_LogSink->info(ss.str().c_str()); - g_LogSink->info(ss.str().c_str(), nullptr, 0); + return true; } - catch (...) - { - std::stringstream ss; + } + catch (const std::exception & ex) + { + std::stringstream ss; - ss << "Failed to evaluate DNS settings on adapter with alias \"" - << common::string::ToAnsi(interfaceAlias) << "\": Unspecified failure"; + ss << "Failed to evaluate DNS settings on adapter with alias \"" + << common::string::ToAnsi(interfaceAlias) << "\": " << ex.what(); - g_LogSink->info(ss.str().c_str(), nullptr, 0); - } + g_LogSink->info(ss.str().c_str()); + } + catch (...) + { + std::stringstream ss; - // - // Onwards - // + ss << "Failed to evaluate DNS settings on adapter with alias \"" + << common::string::ToAnsi(interfaceAlias) << "\": Unspecified failure"; + g_LogSink->info(ss.str().c_str()); + } + + // + // Apply specified settings. + // + + const auto operation = std::string("Apply DNS settings on adapter with alias \"") + .append(common::string::ToAnsi(interfaceAlias)).append("\""); + + return ConfineOperation(operation.c_str(), g_LogSink, [&]() + { const auto interfaceIndex = ConvertInterfaceAliasToIndex(interfaceAlias); if (nullptr != ipv4Servers && 0 != numIpv4Servers) diff --git a/windows/windns/src/windns/windns.h b/windows/windns/src/windns/windns.h index 2ecd046f5b..dee2993681 100644 --- a/windows/windns/src/windns/windns.h +++ b/windows/windns/src/windns/windns.h @@ -1,5 +1,7 @@ #pragma once -#include <cstdint> + +#include <libshared/logging/logsink.h> +#include <stdint.h> // // WINDNS public API @@ -17,15 +19,6 @@ // Functions /////////////////////////////////////////////////////////////////////////////// -enum WinDnsLogCategory -{ - WINDNS_LOG_CATEGORY_ERROR = 0x01, - WINDNS_LOG_CATEGORY_INFO = 0x02 -}; - -typedef void (WINDNS_API *WinDnsLogSink)(WinDnsLogCategory category, const char *message, - const char **details, uint32_t numDetails, void *context); - // // WinDns_Initialize: // @@ -37,8 +30,8 @@ WINDNS_LINKAGE bool WINDNS_API WinDns_Initialize( - WinDnsLogSink logSink, - void *logContext + MullvadLogSink logSink, + void *logSinkContext ); // diff --git a/windows/windns/src/windns/windns.vcxproj b/windows/windns/src/windns/windns.vcxproj index 31a74eab87..05293ca9a4 100644 --- a/windows/windns/src/windns/windns.vcxproj +++ b/windows/windns/src/windns/windns.vcxproj @@ -98,7 +98,7 @@ <SDLCheck>true</SDLCheck> <PreprocessorDefinitions>_DEBUG;WINDNS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> - <AdditionalIncludeDirectories>$(ProjectDir)../;$(ProjectDir)../../../windows-libraries/src/;$(ProjectDir)../../../shared/src/</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(ProjectDir)../../../libshared/src/;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <LanguageStandard>stdcpplatest</LanguageStandard> </ClCompile> @@ -106,7 +106,7 @@ <SubSystem>Windows</SubSystem> <GenerateDebugInformation>true</GenerateDebugInformation> <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories> - <AdditionalDependencies>shared.lib;libcommon.lib;Iphlpapi.lib;wbemuuid.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>libshared.lib;libcommon.lib;Iphlpapi.lib;wbemuuid.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'"> @@ -117,7 +117,7 @@ <SDLCheck>true</SDLCheck> <PreprocessorDefinitions>WIN32;_DEBUG;WINDNS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> - <AdditionalIncludeDirectories>$(ProjectDir)../;$(ProjectDir)../../../windows-libraries/src/;$(ProjectDir)../../../shared/src/</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(ProjectDir)../../../libshared/src/;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories> <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary> <LanguageStandard>stdcpplatest</LanguageStandard> </ClCompile> @@ -125,7 +125,7 @@ <SubSystem>Windows</SubSystem> <GenerateDebugInformation>true</GenerateDebugInformation> <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories> - <AdditionalDependencies>shared.lib;libcommon.lib;Iphlpapi.lib;wbemuuid.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>libshared.lib;libcommon.lib;Iphlpapi.lib;wbemuuid.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'"> @@ -138,7 +138,7 @@ <SDLCheck>true</SDLCheck> <PreprocessorDefinitions>WIN32;NDEBUG;WINDNS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> - <AdditionalIncludeDirectories>$(ProjectDir)../;$(ProjectDir)../../../windows-libraries/src/;$(ProjectDir)../../../shared/src/</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(ProjectDir)../../../libshared/src/;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <LanguageStandard>stdcpplatest</LanguageStandard> </ClCompile> @@ -148,7 +148,7 @@ <OptimizeReferences>true</OptimizeReferences> <GenerateDebugInformation>true</GenerateDebugInformation> <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories> - <AdditionalDependencies>shared.lib;libcommon.lib;Iphlpapi.lib;wbemuuid.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>libshared.lib;libcommon.lib;Iphlpapi.lib;wbemuuid.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'"> @@ -161,7 +161,7 @@ <SDLCheck>true</SDLCheck> <PreprocessorDefinitions>NDEBUG;WINDNS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions> <ConformanceMode>true</ConformanceMode> - <AdditionalIncludeDirectories>$(ProjectDir)../;$(ProjectDir)../../../windows-libraries/src/;$(ProjectDir)../../../shared/src/</AdditionalIncludeDirectories> + <AdditionalIncludeDirectories>$(ProjectDir)../../../libshared/src/;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories> <RuntimeLibrary>MultiThreaded</RuntimeLibrary> <LanguageStandard>stdcpplatest</LanguageStandard> </ClCompile> @@ -171,13 +171,11 @@ <OptimizeReferences>true</OptimizeReferences> <GenerateDebugInformation>true</GenerateDebugInformation> <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories> - <AdditionalDependencies>shared.lib;libcommon.lib;Iphlpapi.lib;wbemuuid.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> + <AdditionalDependencies>libshared.lib;libcommon.lib;Iphlpapi.lib;wbemuuid.lib;comsuppw.lib;kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;%(AdditionalDependencies)</AdditionalDependencies> </Link> </ItemDefinitionGroup> <ItemGroup> <ClInclude Include="confineoperation.h" /> - <ClInclude Include="logsink.h" /> - <ClInclude Include="ilogsink.h" /> <ClInclude Include="netsh.h" /> <ClInclude Include="stdafx.h" /> <ClInclude Include="targetver.h" /> @@ -186,7 +184,6 @@ <ItemGroup> <ClCompile Include="confineoperation.cpp" /> <ClCompile Include="dllmain.cpp" /> - <ClCompile Include="logsink.cpp" /> <ClCompile Include="netsh.cpp" /> <ClCompile Include="stdafx.cpp"> <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader> diff --git a/windows/windns/src/windns/windns.vcxproj.filters b/windows/windns/src/windns/windns.vcxproj.filters index e71bf3e814..69449dc6c4 100644 --- a/windows/windns/src/windns/windns.vcxproj.filters +++ b/windows/windns/src/windns/windns.vcxproj.filters @@ -6,8 +6,6 @@ <ClInclude Include="windns.h" /> <ClInclude Include="netsh.h" /> <ClInclude Include="confineoperation.h" /> - <ClInclude Include="ilogsink.h" /> - <ClInclude Include="logsink.h" /> </ItemGroup> <ItemGroup> <ClCompile Include="dllmain.cpp" /> @@ -15,7 +13,6 @@ <ClCompile Include="windns.cpp" /> <ClCompile Include="netsh.cpp" /> <ClCompile Include="confineoperation.cpp" /> - <ClCompile Include="logsink.cpp" /> </ItemGroup> <ItemGroup> <ResourceCompile Include="windns.rc" /> diff --git a/windows/windns/windns.sln b/windows/windns/windns.sln index 13f072ff31..efe218a454 100644 --- a/windows/windns/windns.sln +++ b/windows/windns/windns.sln @@ -10,7 +10,10 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "windns", "src\windns\windns {EE69EA4A-CF71-4B88-866B-957F60C4CE0D} = {EE69EA4A-CF71-4B88-866B-957F60C4CE0D} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "shared", "..\shared\src\shared\shared.vcxproj", "{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}" +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libshared", "..\libshared\src\libshared\libshared.vcxproj", "{EE69EA4A-CF71-4B88-866B-957F60C4CE0D}" + ProjectSection(ProjectDependencies) = postProject + {B52E2D10-A94A-4605-914A-2DCEF6A757EF} = {B52E2D10-A94A-4605-914A-2DCEF6A757EF} + EndProjectSection EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution |
