summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorOdd Stranne <odd@mullvad.net>2019-11-29 13:36:23 +0100
committerOdd Stranne <odd@mullvad.net>2019-12-04 13:08:01 +0100
commit9f91608ec56bbc150fe66277d1fa90d9274b7283 (patch)
tree8c10b28f19296c1ef970d6c2d88b73cf39503800
parentae8aa15aad804564c58a23a5b9a50f821c317966 (diff)
downloadmullvadvpn-9f91608ec56bbc150fe66277d1fa90d9274b7283.tar.xz
mullvadvpn-9f91608ec56bbc150fe66277d1fa90d9274b7283.zip
Update logging in windns
-rw-r--r--windows/windns/src/windns/confineoperation.cpp91
-rw-r--r--windows/windns/src/windns/confineoperation.h23
-rw-r--r--windows/windns/src/windns/ilogsink.h31
-rw-r--r--windows/windns/src/windns/logsink.cpp34
-rw-r--r--windows/windns/src/windns/logsink.h21
-rw-r--r--windows/windns/src/windns/netsh.cpp42
-rw-r--r--windows/windns/src/windns/netsh.h28
-rw-r--r--windows/windns/src/windns/windns.cpp123
-rw-r--r--windows/windns/src/windns/windns.h17
-rw-r--r--windows/windns/src/windns/windns.vcxproj19
-rw-r--r--windows/windns/src/windns/windns.vcxproj.filters3
-rw-r--r--windows/windns/windns.sln5
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