summaryrefslogtreecommitdiffhomepage
path: root/windows
diff options
context:
space:
mode:
Diffstat (limited to 'windows')
-rw-r--r--windows/windns/extras.sln72
-rw-r--r--windows/windns/src/extras/loader/loader.cpp36
-rw-r--r--windows/windns/src/extras/loader/loader.vcxproj193
-rw-r--r--windows/windns/src/extras/loader/loader.vcxproj.filters11
-rw-r--r--windows/windns/src/extras/loader/stdafx.cpp8
-rw-r--r--windows/windns/src/extras/loader/stdafx.h15
-rw-r--r--windows/windns/src/extras/loader/targetver.h8
-rw-r--r--windows/windns/src/windns/confineoperation.cpp33
-rw-r--r--windows/windns/src/windns/confineoperation.h14
-rw-r--r--windows/windns/src/windns/dllmain.cpp11
-rw-r--r--windows/windns/src/windns/netsh.cpp221
-rw-r--r--windows/windns/src/windns/netsh.h33
-rw-r--r--windows/windns/src/windns/stdafx.cpp8
-rw-r--r--windows/windns/src/windns/stdafx.h17
-rw-r--r--windows/windns/src/windns/targetver.h12
-rw-r--r--windows/windns/src/windns/windns.cpp321
-rw-r--r--windows/windns/src/windns/windns.h64
-rw-r--r--windows/windns/src/windns/windns.rc25
-rw-r--r--windows/windns/src/windns/windns.vcxproj202
-rw-r--r--windows/windns/src/windns/windns.vcxproj.filters20
-rw-r--r--windows/windns/windns.sln61
21 files changed, 0 insertions, 1385 deletions
diff --git a/windows/windns/extras.sln b/windows/windns/extras.sln
deleted file mode 100644
index b65334eea0..0000000000
--- a/windows/windns/extras.sln
+++ /dev/null
@@ -1,72 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29324.140
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loader", "src\extras\loader\loader.vcxproj", "{1476A8B9-4A9E-4358-8744-A350CB97E152}"
- ProjectSection(ProjectDependencies) = postProject
- {A5344205-FC37-4572-9C63-8564ECC410AC} = {A5344205-FC37-4572-9C63-8564ECC410AC}
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF} = {B52E2D10-A94A-4605-914A-2DCEF6A757EF}
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D} = {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "windns", "src\windns\windns.vcxproj", "{A5344205-FC37-4572-9C63-8564ECC410AC}"
- ProjectSection(ProjectDependencies) = postProject
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF} = {B52E2D10-A94A-4605-914A-2DCEF6A757EF}
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D} = {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}
- EndProjectSection
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcommon", "..\windows-libraries\src\libcommon\libcommon.vcxproj", "{B52E2D10-A94A-4605-914A-2DCEF6A757EF}"
-EndProject
-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
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {1476A8B9-4A9E-4358-8744-A350CB97E152}.Debug|x64.ActiveCfg = Debug|x64
- {1476A8B9-4A9E-4358-8744-A350CB97E152}.Debug|x64.Build.0 = Debug|x64
- {1476A8B9-4A9E-4358-8744-A350CB97E152}.Debug|x86.ActiveCfg = Debug|Win32
- {1476A8B9-4A9E-4358-8744-A350CB97E152}.Debug|x86.Build.0 = Debug|Win32
- {1476A8B9-4A9E-4358-8744-A350CB97E152}.Release|x64.ActiveCfg = Release|x64
- {1476A8B9-4A9E-4358-8744-A350CB97E152}.Release|x64.Build.0 = Release|x64
- {1476A8B9-4A9E-4358-8744-A350CB97E152}.Release|x86.ActiveCfg = Release|Win32
- {1476A8B9-4A9E-4358-8744-A350CB97E152}.Release|x86.Build.0 = Release|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x64.ActiveCfg = Debug|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x64.Build.0 = Debug|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x86.ActiveCfg = Debug|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x86.Build.0 = Debug|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x64.ActiveCfg = Release|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x64.Build.0 = Release|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x86.ActiveCfg = Release|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x86.Build.0 = Release|Win32
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.ActiveCfg = Debug|x64
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.Build.0 = Debug|x64
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.ActiveCfg = Debug|Win32
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.Build.0 = Debug|Win32
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.ActiveCfg = Release|x64
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.Build.0 = Release|x64
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x86.ActiveCfg = Release|Win32
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x86.Build.0 = Release|Win32
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x64.ActiveCfg = Debug|x64
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x64.Build.0 = Debug|x64
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x86.ActiveCfg = Debug|Win32
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x86.Build.0 = Debug|Win32
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x64.ActiveCfg = Release|x64
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x64.Build.0 = Release|x64
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x86.ActiveCfg = Release|Win32
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {16D5A833-BF2F-4049-A7E1-570B792F8148}
- EndGlobalSection
-EndGlobal
diff --git a/windows/windns/src/extras/loader/loader.cpp b/windows/windns/src/extras/loader/loader.cpp
deleted file mode 100644
index d4e118e3a0..0000000000
--- a/windows/windns/src/extras/loader/loader.cpp
+++ /dev/null
@@ -1,36 +0,0 @@
-#include "stdafx.h"
-#include "windns/windns.h"
-#include <libshared/logging/stdoutlogger.h>
-#include <libcommon/trace/trace.h>
-#include <libcommon/trace/consoletracesink.h>
-#include <iostream>
-#include <conio.h>
-#include <vector>
-#include <windows.h>
-
-int main()
-{
- common::trace::Trace::RegisterSink(new common::trace::ConsoleTraceSink);
-
- std::wcout << L"WinDns_Initialize: " << std::boolalpha << WinDns_Initialize(shared::logging::StdoutLogger, nullptr) << std::endl;
-
- const wchar_t *servers[] =
- {
- L"8.8.8.8",
- L"8.8.4.4"
- };
-
- const wchar_t *v6Servers[] =
- {
- L"2001:4860:4860::8888",
- L"2001:4860:4860::8844"
- };
-
- auto status = WinDns_Set(L"Wi-Fi", servers, _countof(servers), v6Servers, _countof(v6Servers));
-
- std::wcout << L"WinDns_Set: " << std::boolalpha << status << std::endl;
-
- std::wcout << L"WinDns_Deinitialize: " << std::boolalpha << WinDns_Deinitialize() << std::endl;
-
- return 0;
-}
diff --git a/windows/windns/src/extras/loader/loader.vcxproj b/windows/windns/src/extras/loader/loader.vcxproj
deleted file mode 100644
index 43780ba0fd..0000000000
--- a/windows/windns/src/extras/loader/loader.vcxproj
+++ /dev/null
@@ -1,193 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <VCProjectVersion>16.0</VCProjectVersion>
- <ProjectGuid>{1476A8B9-4A9E-4358-8744-A350CB97E152}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>loader</RootNamespace>
- <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>Application</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="Shared">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
- <IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
- <IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
- <IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
- <IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>$(ProjectDir)../../../../libshared/src/;$(ProjectDir)../../;$(ProjectDir)../../../../windows-libraries/src/</AdditionalIncludeDirectories>
- <LanguageStandard>stdcpplatest</LanguageStandard>
- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
- <AdditionalDependencies>libshared.lib;windns.lib;libcommon.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'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>$(ProjectDir)../../../../libshared/src/;$(ProjectDir)../../;$(ProjectDir)../../../../windows-libraries/src/</AdditionalIncludeDirectories>
- <LanguageStandard>stdcpplatest</LanguageStandard>
- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
- <AdditionalDependencies>libshared.lib;windns.lib;libcommon.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'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>$(ProjectDir)../../../../libshared/src/;$(ProjectDir)../../;$(ProjectDir)../../../../windows-libraries/src/</AdditionalIncludeDirectories>
- <LanguageStandard>stdcpplatest</LanguageStandard>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
- <AdditionalDependencies>libshared.lib;windns.lib;libcommon.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'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>$(ProjectDir)../../../../libshared/src/;$(ProjectDir)../../;$(ProjectDir)../../../../windows-libraries/src/</AdditionalIncludeDirectories>
- <LanguageStandard>stdcpplatest</LanguageStandard>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- </ClCompile>
- <Link>
- <SubSystem>Console</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
- <AdditionalDependencies>libshared.lib;windns.lib;libcommon.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="stdafx.h" />
- <ClInclude Include="targetver.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="loader.cpp" />
- <ClCompile Include="stdafx.cpp">
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
- </ClCompile>
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/windows/windns/src/extras/loader/loader.vcxproj.filters b/windows/windns/src/extras/loader/loader.vcxproj.filters
deleted file mode 100644
index e29869c50f..0000000000
--- a/windows/windns/src/extras/loader/loader.vcxproj.filters
+++ /dev/null
@@ -1,11 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <ClInclude Include="stdafx.h" />
- <ClInclude Include="targetver.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="loader.cpp" />
- <ClCompile Include="stdafx.cpp" />
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/windows/windns/src/extras/loader/stdafx.cpp b/windows/windns/src/extras/loader/stdafx.cpp
deleted file mode 100644
index e8a73894f3..0000000000
--- a/windows/windns/src/extras/loader/stdafx.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// stdafx.cpp : source file that includes just the standard includes
-// dnstest.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/windows/windns/src/extras/loader/stdafx.h b/windows/windns/src/extras/loader/stdafx.h
deleted file mode 100644
index b005a839de..0000000000
--- a/windows/windns/src/extras/loader/stdafx.h
+++ /dev/null
@@ -1,15 +0,0 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#pragma once
-
-#include "targetver.h"
-
-#include <stdio.h>
-#include <tchar.h>
-
-
-
-// TODO: reference additional headers your program requires here
diff --git a/windows/windns/src/extras/loader/targetver.h b/windows/windns/src/extras/loader/targetver.h
deleted file mode 100644
index 87c0086de7..0000000000
--- a/windows/windns/src/extras/loader/targetver.h
+++ /dev/null
@@ -1,8 +0,0 @@
-#pragma once
-
-// Including SDKDDKVer.h defines the highest available Windows platform.
-
-// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
-// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
-
-#include <SDKDDKVer.h>
diff --git a/windows/windns/src/windns/confineoperation.cpp b/windows/windns/src/windns/confineoperation.cpp
deleted file mode 100644
index 5097986c0f..0000000000
--- a/windows/windns/src/windns/confineoperation.cpp
+++ /dev/null
@@ -1,33 +0,0 @@
-#include "stdafx.h"
-#include "confineoperation.h"
-#include "netsh.h"
-
-bool ConfineOperation
-(
- const char *literalOperation,
- std::shared_ptr<common::logging::ILogSink> logSink,
- std::function<void()> operation
-)
-{
- try
- {
- operation();
- return true;
- }
- catch (const std::exception &err)
- {
- const auto what = std::string(literalOperation).append(": ").append(err.what());
-
- logSink->error(what.c_str());
-
- return false;
- }
- catch (...)
- {
- const auto what = std::string(literalOperation).append(": Unspecified failure");
-
- logSink->error(what.c_str());
-
- return false;
- }
-}
diff --git a/windows/windns/src/windns/confineoperation.h b/windows/windns/src/windns/confineoperation.h
deleted file mode 100644
index 56aa48a929..0000000000
--- a/windows/windns/src/windns/confineoperation.h
+++ /dev/null
@@ -1,14 +0,0 @@
-#pragma once
-
-#include <libcommon/logging/ilogsink.h>
-#include <functional>
-#include <vector>
-#include <string>
-#include <cstdint>
-
-bool ConfineOperation
-(
- const char *literalOperation,
- std::shared_ptr<common::logging::ILogSink> logSink,
- std::function<void()> operation
-);
diff --git a/windows/windns/src/windns/dllmain.cpp b/windows/windns/src/windns/dllmain.cpp
deleted file mode 100644
index f11c65c519..0000000000
--- a/windows/windns/src/windns/dllmain.cpp
+++ /dev/null
@@ -1,11 +0,0 @@
-#include "stdafx.h"
-#include <windows.h>
-
-BOOL APIENTRY DllMain(HMODULE, DWORD, LPVOID)
-{
- //
- // Avoid doing work in DllMain since the loader lock is held
- //
-
- return TRUE;
-}
diff --git a/windows/windns/src/windns/netsh.cpp b/windows/windns/src/windns/netsh.cpp
deleted file mode 100644
index 2a4162724d..0000000000
--- a/windows/windns/src/windns/netsh.cpp
+++ /dev/null
@@ -1,221 +0,0 @@
-#include "stdafx.h"
-#include "netsh.h"
-#include <libcommon/string.h>
-#include <libcommon/error.h>
-#include <libcommon/filesystem.h>
-#include <libcommon/guid.h>
-#include <sstream>
-#include <stdexcept>
-#include <filesystem>
-#include <iphlpapi.h>
-
-namespace
-{
-
-__declspec(noreturn) void ThrowWithDetails(std::string &&error, common::process::ApplicationRunner &netsh)
-{
- std::string details("Failed to capture output from 'netsh'");
-
- std::string output;
-
- static const size_t MAX_CHARS = 2048;
- static const size_t TIMEOUT_MILLISECONDS = 2000;
-
- if (netsh.read(output, MAX_CHARS, TIMEOUT_MILLISECONDS))
- {
- details = std::move(output);
- }
-
- const auto msg = std::string(error).append(": ").append(details);
-
- THROW_ERROR(msg.c_str());
-}
-
-} // anonymous namespace
-
-NetSh::NetSh(std::shared_ptr<common::logging::ILogSink> logSink)
- : m_logSink(logSink)
-{
- const auto system32 = common::fs::GetKnownFolderPath(FOLDERID_System);
- m_netShPath = std::filesystem::path(system32).append(L"netsh.exe");
-}
-
-void NetSh::setIpv4StaticDns(uint32_t interfaceIndex,
- const std::vector<std::wstring> &nameServers, uint32_t timeout)
-{
- //
- // Setting primary and secondary name server requires two invokations:
- //
- // netsh interface ipv4 set dnsservers name="Ethernet 2" source=static address=8.8.8.8 validate=no
- // netsh interface ipv4 add dnsservers name="Ethernet 2" address=8.8.4.4 index=2 validate=no
- //
- // Note: we're specifying the interface by index instead.
- //
-
- if (nameServers.empty())
- {
- THROW_ERROR("Invalid list of name servers (zero length list)");
- }
-
- {
- std::wstringstream ss;
-
- ss << L"interface ipv4 set dnsservers name="
- << interfaceIndex
- << L" source=static address="
- << nameServers[0]
- << L" validate=no";
-
- auto netsh = common::process::ApplicationRunner::StartWithoutConsole(m_netShPath, ss.str());
-
- validateShellOut(*netsh, timeout);
- }
-
- //
- // Set additional name servers.
- //
-
- for (size_t i = 1; i < nameServers.size(); ++i)
- {
- std::wstringstream ss;
-
- ss << L"interface ipv4 add dnsservers name="
- << interfaceIndex
- << L" address="
- << nameServers[i]
- << L" index="
- << i + 1
- << L" validate=no";
-
- auto netsh = common::process::ApplicationRunner::StartWithoutConsole(m_netShPath, ss.str());
-
- validateShellOut(*netsh, timeout);
- }
-}
-
-void NetSh::setIpv4DhcpDns(uint32_t interfaceIndex, uint32_t timeout)
-{
- //
- // netsh interface ipv4 set dnsservers name="Ethernet 2" source=dhcp
- //
- // Note: we're specifying the interface by index instead.
- //
-
- std::wstringstream ss;
-
- ss << L"interface ipv4 set dnsservers name="
- << interfaceIndex
- << L" source=dhcp";
-
- auto netsh = common::process::ApplicationRunner::StartWithoutConsole(m_netShPath, ss.str());
-
- validateShellOut(*netsh, timeout);
-}
-
-void NetSh::setIpv6StaticDns(uint32_t interfaceIndex,
- const std::vector<std::wstring> &nameServers, uint32_t timeout)
-{
- //
- // Setting primary and secondary name server requires two invokations:
- //
- // netsh interface ipv6 set dnsservers name="Ethernet 2" source=static address=2001:4860:4860::8888 validate=no
- // netsh interface ipv6 add dnsservers name="Ethernet 2" address=2001:4860:4860::8844 index=2 validate=no
- //
- // Note: we're specifying the interface by index instead.
- //
-
- if (nameServers.empty())
- {
- THROW_ERROR("Invalid list of name servers (zero length list)");
- }
-
- {
- std::wstringstream ss;
-
- ss << L"interface ipv6 set dnsservers name="
- << interfaceIndex
- << L" source=static address="
- << nameServers[0]
- << L" validate=no";
-
- auto netsh = common::process::ApplicationRunner::StartWithoutConsole(m_netShPath, ss.str());
-
- validateShellOut(*netsh, timeout);
- }
-
- //
- // Set additional name servers.
- //
-
- for (size_t i = 1; i < nameServers.size(); ++i)
- {
- std::wstringstream ss;
-
- ss << L"interface ipv6 add dnsservers name="
- << interfaceIndex
- << L" address="
- << nameServers[i]
- << L" index="
- << i + 1
- << L" validate=no";
-
- auto netsh = common::process::ApplicationRunner::StartWithoutConsole(m_netShPath, ss.str());
-
- validateShellOut(*netsh, timeout);
- }
-}
-
-void NetSh::setIpv6DhcpDns(uint32_t interfaceIndex, uint32_t timeout)
-{
- //
- // netsh interface ipv6 set dnsservers name="Ethernet 2" source=dhcp
- //
- // Note: we're specifying the interface by index instead.
- //
-
- std::wstringstream ss;
-
- ss << L"interface ipv6 set dnsservers name="
- << interfaceIndex
- << L" source=dhcp";
-
- auto netsh = common::process::ApplicationRunner::StartWithoutConsole(m_netShPath, ss.str());
-
- validateShellOut(*netsh, timeout);
-}
-
-void NetSh::validateShellOut(common::process::ApplicationRunner &netsh, uint32_t timeout)
-{
- const uint32_t actualTimeout = (0 == timeout ? 10000 : timeout);
-
- const auto startTime = GetTickCount64();
-
- DWORD returnCode;
-
- if (false == netsh.join(returnCode, actualTimeout))
- {
- ThrowWithDetails("'netsh' did not complete in a timely manner", netsh);
- }
-
- if (returnCode != 0)
- {
- std::stringstream ss;
-
- ss << "'netsh' failed the requested operation. Error: " << returnCode;
-
- ThrowWithDetails(ss.str(), netsh);
- }
-
- const auto elapsed = static_cast<uint32_t>(GetTickCount64() - startTime);
-
- if (elapsed > (actualTimeout / 2))
- {
- std::stringstream ss;
-
- ss << "'netsh' completed successfully, albeit a little slowly. It consumed "
- << elapsed << " ms of "
- << actualTimeout << " ms max permitted execution time";
-
- m_logSink->info(ss.str().c_str());
- }
-}
diff --git a/windows/windns/src/windns/netsh.h b/windows/windns/src/windns/netsh.h
deleted file mode 100644
index 732a151a65..0000000000
--- a/windows/windns/src/windns/netsh.h
+++ /dev/null
@@ -1,33 +0,0 @@
-#pragma once
-
-#include <libcommon/logging/ilogsink.h>
-#include <libcommon/process/applicationrunner.h>
-#include <string>
-#include <vector>
-#include <cstdint>
-#include <stdexcept>
-#include <memory>
-
-class NetSh
-{
-public:
-
- NetSh(std::shared_ptr<common::logging::ILogSink> logSink);
-
- void setIpv4StaticDns(uint32_t interfaceIndex,
- const std::vector<std::wstring> &nameServers, uint32_t timeout = 0);
-
- void setIpv4DhcpDns(uint32_t interfaceIndex, uint32_t timeout = 0);
-
- void setIpv6StaticDns(uint32_t interfaceIndex,
- const std::vector<std::wstring> &nameServers, uint32_t timeout = 0);
-
- void setIpv6DhcpDns(uint32_t interfaceIndex, uint32_t timeout = 0);
-
-private:
-
- std::shared_ptr<common::logging::ILogSink> m_logSink;
- std::wstring m_netShPath;
-
- void validateShellOut(common::process::ApplicationRunner &netsh, uint32_t timeout);
-};
diff --git a/windows/windns/src/windns/stdafx.cpp b/windows/windns/src/windns/stdafx.cpp
deleted file mode 100644
index 689eb89a7e..0000000000
--- a/windows/windns/src/windns/stdafx.cpp
+++ /dev/null
@@ -1,8 +0,0 @@
-// stdafx.cpp : source file that includes just the standard includes
-// windns.pch will be the pre-compiled header
-// stdafx.obj will contain the pre-compiled type information
-
-#include "stdafx.h"
-
-// TODO: reference any additional headers you need in STDAFX.H
-// and not in this file
diff --git a/windows/windns/src/windns/stdafx.h b/windows/windns/src/windns/stdafx.h
deleted file mode 100644
index 6878f4de13..0000000000
--- a/windows/windns/src/windns/stdafx.h
+++ /dev/null
@@ -1,17 +0,0 @@
-// stdafx.h : include file for standard system include files,
-// or project specific include files that are used frequently, but
-// are changed infrequently
-//
-
-#pragma once
-
-#include "targetver.h"
-
-#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers
-
-#include <windows.h>
-#include <sstream>
-#include <string>
-#include <vector>
-#include <stdexcept>
-#include <cstdint>
diff --git a/windows/windns/src/windns/targetver.h b/windows/windns/src/windns/targetver.h
deleted file mode 100644
index ae4a5c032c..0000000000
--- a/windows/windns/src/windns/targetver.h
+++ /dev/null
@@ -1,12 +0,0 @@
-#pragma once
-
-// Including SDKDDKVer.h defines the highest available Windows platform.
-
-// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and
-// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h.
-
-#include <WinSDKVer.h>
-
-#define _WIN32_WINNT _WIN32_WINNT_WIN7
-
-#include <SDKDDKVer.h>
diff --git a/windows/windns/src/windns/windns.cpp b/windows/windns/src/windns/windns.cpp
deleted file mode 100644
index f7cc35f27f..0000000000
--- a/windows/windns/src/windns/windns.cpp
+++ /dev/null
@@ -1,321 +0,0 @@
-#include "stdafx.h"
-#include <libcommon/guid.h>
-#include <libcommon/string.h>
-#include <libcommon/error.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 <memory>
-#include <vector>
-#include <string>
-#include <sstream>
-#include <ws2tcpip.h>
-#include <ws2ipdef.h>
-#include <winsock2.h> // magic order :-(
-#include <iphlpapi.h> // if we don't do this then most of iphlpapi is not actually defined
-
-bool operator==(const IN_ADDR &lhs, const IN_ADDR &rhs)
-{
- return 0 == memcmp(&lhs, &rhs, sizeof(IN_ADDR));
-}
-
-bool operator==(const IN6_ADDR &lhs, const IN6_ADDR &rhs)
-{
- return 0 == memcmp(&lhs, &rhs, sizeof(IN6_ADDR));
-}
-
-namespace
-{
-
-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)
-{
- std::vector<std::wstring> v;
-
- while (numStrings--)
- {
- v.emplace_back(*strings++);
- }
-
- return v;
-}
-
-uint32_t ConvertInterfaceLuidToIndex(const NET_LUID &luid)
-{
- NET_IFINDEX index;
-
- if (NO_ERROR != ConvertInterfaceLuidToIndex(&luid, &index))
- {
- std::wstringstream ss;
-
- ss << L"Could not resolve index of interface with LUID: 0x"
- << std::hex << luid.Value;
-
- THROW_ERROR(common::string::ToAnsi(ss.str()).c_str());
- }
-
- return static_cast<uint32_t>(index);
-}
-
-struct AdapterDnsAddresses
-{
- std::vector<IN_ADDR> ipv4;
- std::vector<IN6_ADDR> ipv6;
-};
-
-//
-// The adapter structure that is returned has two fields for interface index.
-// If IPv4 is enabled, 'IfIndex' will be set. Otherwise set to 0.
-// If IPv6 is enabled, 'Ipv6IfIndex' will be set. Otherwise set to 0.
-// If both IPv4 and IPv6 is enabled, then both fields will be set, and have the same value.
-//
-AdapterDnsAddresses GetAdapterDnsAddresses(const NET_LUID &adapterLuid)
-{
- using shared::network::InterfaceUtils;
-
- const auto adapters = InterfaceUtils::GetAllAdapters(
- AF_UNSPEC,
- GAA_FLAG_SKIP_UNICAST | GAA_FLAG_SKIP_ANYCAST | GAA_FLAG_SKIP_MULTICAST
- );
-
- for (const auto adapter : adapters)
- {
- if (adapterLuid.Value != adapter.raw().Luid.Value)
- {
- continue;
- }
-
- AdapterDnsAddresses out;
-
- for (auto server = adapter.raw().FirstDnsServerAddress; nullptr != server; server = server->Next)
- {
- if (AF_INET == server->Address.lpSockaddr->sa_family)
- {
- out.ipv4.push_back(((const SOCKADDR_IN*)server->Address.lpSockaddr)->sin_addr);
- }
- else if (AF_INET6 == server->Address.lpSockaddr->sa_family)
- {
- out.ipv6.push_back(((const SOCKADDR_IN6_LH*)server->Address.lpSockaddr)->sin6_addr);
- }
- }
-
- return out;
- }
-
- std::stringstream ss;
- ss << "Could not find interface with LUID: 0x" << std::hex << adapterLuid.Value;
- THROW_ERROR(ss.str().c_str());
-}
-
-AdapterDnsAddresses ConvertAddresses(
- const wchar_t **ipv4Servers,
- uint32_t numIpv4Servers,
- const wchar_t **ipv6Servers,
- uint32_t numIpv6Servers
-)
-{
- AdapterDnsAddresses out;
-
- if (nullptr != ipv4Servers && 0 != numIpv4Servers)
- {
- for (uint32_t i = 0; i < numIpv4Servers; ++i)
- {
- IN_ADDR converted;
-
- if (1 != InetPtonW(AF_INET, ipv4Servers[i], &converted))
- {
- THROW_ERROR("Failed to convert IPv4 address");
- }
-
- out.ipv4.push_back(converted);
- }
- }
-
- if (nullptr != ipv6Servers && 0 != numIpv6Servers)
- {
- for (uint32_t i = 0; i < numIpv6Servers; ++i)
- {
- IN6_ADDR converted;
-
- if (1 != InetPtonW(AF_INET6, ipv6Servers[i], &converted))
- {
- THROW_ERROR("Failed to convert IPv6 address");
- }
-
- out.ipv6.push_back(converted);
- }
- }
-
- return out;
-}
-
-bool Equal(const AdapterDnsAddresses &lhs, const AdapterDnsAddresses &rhs)
-{
- return lhs.ipv4 == rhs.ipv4
- && lhs.ipv6 == rhs.ipv6;
-}
-
-} // anonymous namespace
-
-WINDNS_LINKAGE
-bool
-WINDNS_API
-WinDns_Initialize(
- MullvadLogSink logSink,
- void *logSinkContext
-)
-{
- if (g_LogSink)
- {
- return false;
- }
-
- try
- {
- g_LogSink = std::make_shared<shared::logging::LogSinkAdapter>(logSink, logSinkContext);
-
- try
- {
- g_NetSh = std::make_shared<NetSh>(g_LogSink);
- }
- catch (...)
- {
- 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
-bool
-WINDNS_API
-WinDns_Deinitialize(
-)
-{
- g_NetSh.reset();
- g_LogSink.reset();
-
- return true;
-}
-
-WINDNS_LINKAGE
-bool
-WINDNS_API
-WinDns_Set(
- const NET_LUID *interfaceLuid,
- const wchar_t **ipv4Servers,
- uint32_t numIpv4Servers,
- const wchar_t **ipv6Servers,
- uint32_t numIpv6Servers
-)
-{
- if (nullptr == g_LogSink)
- {
- return false;
- }
-
- if (nullptr == interfaceLuid)
- {
- g_LogSink->error("Invalid argument: interfaceLuid");
- return false;
- }
-
- //
- // Check the settings on the adapter.
- // If it already has the exact same settings we need, we're done.
- //
- try
- {
- const auto activeSettings = GetAdapterDnsAddresses(*interfaceLuid);
- const auto wantedSetting = ConvertAddresses(ipv4Servers, numIpv4Servers, ipv6Servers, numIpv6Servers);
-
- if (Equal(activeSettings, wantedSetting))
- {
- std::stringstream ss;
-
- ss << "DNS settings on adapter with LUID 0x" << std::hex << interfaceLuid->Value << " are up-to-date";
-
- g_LogSink->info(ss.str().c_str());
-
- return true;
- }
- }
- catch (const std::exception &err)
- {
- std::stringstream ss;
-
- ss << "Failed to evaluate DNS settings on adapter with LUID 0x"
- << std::hex << interfaceLuid->Value << ": " << err.what();
-
- g_LogSink->info(ss.str().c_str());
- }
- catch (...)
- {
- std::stringstream ss;
-
- ss << "Failed to evaluate DNS settings on adapter with LUID 0x"
- << std::hex << interfaceLuid->Value << ": Unspecified failure";
-
- g_LogSink->info(ss.str().c_str());
- }
-
- //
- // Apply specified settings.
- //
-
- std::stringstream operation;
- operation << "Apply DNS settings on adapter with LUID 0x"
- << std::hex << interfaceLuid->Value;
-
- return ConfineOperation(operation.str().c_str(), g_LogSink, [&]()
- {
- const auto interfaceIndex = ConvertInterfaceLuidToIndex(*interfaceLuid);
-
- if (nullptr != ipv4Servers && 0 != numIpv4Servers)
- {
- g_NetSh->setIpv4StaticDns(interfaceIndex, MakeStringArray(ipv4Servers, numIpv4Servers));
- }
- else
- {
- // This is required to clear any current settings.
- g_NetSh->setIpv4DhcpDns(interfaceIndex);
- }
-
- if (nullptr != ipv6Servers && 0 != numIpv6Servers)
- {
- g_NetSh->setIpv6StaticDns(interfaceIndex, MakeStringArray(ipv6Servers, numIpv6Servers));
- }
- else
- {
- // This is required to clear any current settings.
- g_NetSh->setIpv6DhcpDns(interfaceIndex);
- }
- });
-}
diff --git a/windows/windns/src/windns/windns.h b/windows/windns/src/windns/windns.h
deleted file mode 100644
index a26d4a88d4..0000000000
--- a/windows/windns/src/windns/windns.h
+++ /dev/null
@@ -1,64 +0,0 @@
-#pragma once
-
-#include <libshared/logging/logsink.h>
-#include <stdint.h>
-
-//
-// WINDNS public API
-//
-
-#ifdef WINDNS_EXPORTS
-#define WINDNS_LINKAGE __declspec(dllexport)
-#else
-#define WINDNS_LINKAGE __declspec(dllimport)
-#endif
-
-#define WINDNS_API __stdcall
-
-///////////////////////////////////////////////////////////////////////////////
-// Functions
-///////////////////////////////////////////////////////////////////////////////
-
-//
-// WinDns_Initialize:
-//
-// Call this function once at startup, to acquire resources etc.
-// The error callback is OPTIONAL.
-//
-extern "C"
-WINDNS_LINKAGE
-bool
-WINDNS_API
-WinDns_Initialize(
- MullvadLogSink logSink,
- void *logSinkContext
-);
-
-//
-// WinDns_Deinitialize:
-//
-// Call this function once before unloading WINDNS or exiting the process.
-//
-extern "C"
-WINDNS_LINKAGE
-bool
-WINDNS_API
-WinDns_Deinitialize(
-);
-
-//
-// WinDns_Set:
-//
-// Configure DNS servers on given adapter.
-//
-extern "C"
-WINDNS_LINKAGE
-bool
-WINDNS_API
-WinDns_Set(
- const NET_LUID *interfaceLuid,
- const wchar_t **ipv4Servers,
- uint32_t numIpv4Servers,
- const wchar_t **ipv6Servers,
- uint32_t numIpv6Servers
-);
diff --git a/windows/windns/src/windns/windns.rc b/windows/windns/src/windns/windns.rc
deleted file mode 100644
index 41a4f71683..0000000000
--- a/windows/windns/src/windns/windns.rc
+++ /dev/null
@@ -1,25 +0,0 @@
-#include "../../../../dist-assets/windows/version.h"
-
-1 VERSIONINFO
-FILEVERSION MAJOR_VERSION,MINOR_VERSION,PATCH_VERSION,0
-PRODUCTVERSION MAJOR_VERSION,MINOR_VERSION,PATCH_VERSION,0
-BEGIN
-BLOCK "StringFileInfo"
-BEGIN
- BLOCK "040904E4"
- BEGIN
- VALUE "CompanyName", "Mullvad VPN AB"
- VALUE "FileDescription", "Mullvad VPN DNS module"
- VALUE "FileVersion", PRODUCT_VERSION
- VALUE "InternalName", "windns"
- VALUE "LegalCopyright", "(c) 2022 Mullvad VPN AB"
- VALUE "OriginalFilename", "windns.dll"
- VALUE "ProductName", "Mullvad VPN"
- VALUE "ProductVersion", PRODUCT_VERSION
- END
-END
-BLOCK "VarFileInfo"
-BEGIN
- VALUE "Translation", 0x409, 1252
-END
-END
diff --git a/windows/windns/src/windns/windns.vcxproj b/windows/windns/src/windns/windns.vcxproj
deleted file mode 100644
index 05293ca9a4..0000000000
--- a/windows/windns/src/windns/windns.vcxproj
+++ /dev/null
@@ -1,202 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="16.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup Label="ProjectConfigurations">
- <ProjectConfiguration Include="Debug|Win32">
- <Configuration>Debug</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|Win32">
- <Configuration>Release</Configuration>
- <Platform>Win32</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Debug|x64">
- <Configuration>Debug</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- <ProjectConfiguration Include="Release|x64">
- <Configuration>Release</Configuration>
- <Platform>x64</Platform>
- </ProjectConfiguration>
- </ItemGroup>
- <PropertyGroup Label="Globals">
- <VCProjectVersion>16.0</VCProjectVersion>
- <ProjectGuid>{A5344205-FC37-4572-9C63-8564ECC410AC}</ProjectGuid>
- <Keyword>Win32Proj</Keyword>
- <RootNamespace>windns</RootNamespace>
- <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>true</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
- <ConfigurationType>DynamicLibrary</ConfigurationType>
- <UseDebugLibraries>false</UseDebugLibraries>
- <PlatformToolset>v142</PlatformToolset>
- <WholeProgramOptimization>true</WholeProgramOptimization>
- <CharacterSet>Unicode</CharacterSet>
- </PropertyGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
- <ImportGroup Label="ExtensionSettings">
- </ImportGroup>
- <ImportGroup Label="Shared">
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
- </ImportGroup>
- <PropertyGroup Label="UserMacros" />
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
- <IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
- <LinkIncremental>true</LinkIncremental>
- <OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
- <IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
- <IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
- </PropertyGroup>
- <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
- <LinkIncremental>false</LinkIncremental>
- <OutDir>$(SolutionDir)bin\$(Platform)-$(Configuration)\</OutDir>
- <IntDir>$(SolutionDir)bin\temp\$(Platform)-$(Configuration)\$(ProjectName)\</IntDir>
- </PropertyGroup>
- <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>_DEBUG;WINDNS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>$(ProjectDir)../../../libshared/src/;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
- <LanguageStandard>stdcpplatest</LanguageStandard>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
- <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'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>Disabled</Optimization>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>WIN32;_DEBUG;WINDNS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>$(ProjectDir)../../../libshared/src/;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
- <LanguageStandard>stdcpplatest</LanguageStandard>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
- <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'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>WIN32;NDEBUG;WINDNS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>$(ProjectDir)../../../libshared/src/;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- <LanguageStandard>stdcpplatest</LanguageStandard>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
- <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'">
- <ClCompile>
- <PrecompiledHeader>Use</PrecompiledHeader>
- <WarningLevel>Level4</WarningLevel>
- <Optimization>MaxSpeed</Optimization>
- <FunctionLevelLinking>true</FunctionLevelLinking>
- <IntrinsicFunctions>true</IntrinsicFunctions>
- <SDLCheck>true</SDLCheck>
- <PreprocessorDefinitions>NDEBUG;WINDNS_EXPORTS;_WINDOWS;_USRDLL;%(PreprocessorDefinitions)</PreprocessorDefinitions>
- <ConformanceMode>true</ConformanceMode>
- <AdditionalIncludeDirectories>$(ProjectDir)../../../libshared/src/;$(ProjectDir)../../../windows-libraries/src/</AdditionalIncludeDirectories>
- <RuntimeLibrary>MultiThreaded</RuntimeLibrary>
- <LanguageStandard>stdcpplatest</LanguageStandard>
- </ClCompile>
- <Link>
- <SubSystem>Windows</SubSystem>
- <EnableCOMDATFolding>true</EnableCOMDATFolding>
- <OptimizeReferences>true</OptimizeReferences>
- <GenerateDebugInformation>true</GenerateDebugInformation>
- <AdditionalLibraryDirectories>$(SolutionDir)bin\$(Platform)-$(Configuration)\</AdditionalLibraryDirectories>
- <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="netsh.h" />
- <ClInclude Include="stdafx.h" />
- <ClInclude Include="targetver.h" />
- <ClInclude Include="windns.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="confineoperation.cpp" />
- <ClCompile Include="dllmain.cpp" />
- <ClCompile Include="netsh.cpp" />
- <ClCompile Include="stdafx.cpp">
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">Create</PrecompiledHeader>
- <PrecompiledHeader Condition="'$(Configuration)|$(Platform)'=='Release|x64'">Create</PrecompiledHeader>
- </ClCompile>
- <ClCompile Include="windns.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="windns.rc" />
- </ItemGroup>
- <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
- <ImportGroup Label="ExtensionTargets">
- </ImportGroup>
-</Project> \ No newline at end of file
diff --git a/windows/windns/src/windns/windns.vcxproj.filters b/windows/windns/src/windns/windns.vcxproj.filters
deleted file mode 100644
index 69449dc6c4..0000000000
--- a/windows/windns/src/windns/windns.vcxproj.filters
+++ /dev/null
@@ -1,20 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
- <ItemGroup>
- <ClInclude Include="stdafx.h" />
- <ClInclude Include="targetver.h" />
- <ClInclude Include="windns.h" />
- <ClInclude Include="netsh.h" />
- <ClInclude Include="confineoperation.h" />
- </ItemGroup>
- <ItemGroup>
- <ClCompile Include="dllmain.cpp" />
- <ClCompile Include="stdafx.cpp" />
- <ClCompile Include="windns.cpp" />
- <ClCompile Include="netsh.cpp" />
- <ClCompile Include="confineoperation.cpp" />
- </ItemGroup>
- <ItemGroup>
- <ResourceCompile Include="windns.rc" />
- </ItemGroup>
-</Project> \ No newline at end of file
diff --git a/windows/windns/windns.sln b/windows/windns/windns.sln
deleted file mode 100644
index efe218a454..0000000000
--- a/windows/windns/windns.sln
+++ /dev/null
@@ -1,61 +0,0 @@
-Microsoft Visual Studio Solution File, Format Version 12.00
-# Visual Studio Version 16
-VisualStudioVersion = 16.0.29324.140
-MinimumVisualStudioVersion = 10.0.40219.1
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcommon", "..\windows-libraries\src\libcommon\libcommon.vcxproj", "{B52E2D10-A94A-4605-914A-2DCEF6A757EF}"
-EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "windns", "src\windns\windns.vcxproj", "{A5344205-FC37-4572-9C63-8564ECC410AC}"
- ProjectSection(ProjectDependencies) = postProject
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF} = {B52E2D10-A94A-4605-914A-2DCEF6A757EF}
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D} = {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}
- EndProjectSection
-EndProject
-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
- Debug|x64 = Debug|x64
- Debug|x86 = Debug|x86
- Release|x64 = Release|x64
- Release|x86 = Release|x86
- EndGlobalSection
- GlobalSection(ProjectConfigurationPlatforms) = postSolution
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.ActiveCfg = Debug|x64
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x64.Build.0 = Debug|x64
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.ActiveCfg = Debug|Win32
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Debug|x86.Build.0 = Debug|Win32
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.ActiveCfg = Release|x64
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x64.Build.0 = Release|x64
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x86.ActiveCfg = Release|Win32
- {B52E2D10-A94A-4605-914A-2DCEF6A757EF}.Release|x86.Build.0 = Release|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x64.ActiveCfg = Debug|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x64.Build.0 = Debug|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x64.Deploy.0 = Debug|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x86.ActiveCfg = Debug|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x86.Build.0 = Debug|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Debug|x86.Deploy.0 = Debug|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x64.ActiveCfg = Release|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x64.Build.0 = Release|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x64.Deploy.0 = Release|x64
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x86.ActiveCfg = Release|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x86.Build.0 = Release|Win32
- {A5344205-FC37-4572-9C63-8564ECC410AC}.Release|x86.Deploy.0 = Release|Win32
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x64.ActiveCfg = Debug|x64
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x64.Build.0 = Debug|x64
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x86.ActiveCfg = Debug|Win32
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Debug|x86.Build.0 = Debug|Win32
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x64.ActiveCfg = Release|x64
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x64.Build.0 = Release|x64
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x86.ActiveCfg = Release|Win32
- {EE69EA4A-CF71-4B88-866B-957F60C4CE0D}.Release|x86.Build.0 = Release|Win32
- EndGlobalSection
- GlobalSection(SolutionProperties) = preSolution
- HideSolutionNode = FALSE
- EndGlobalSection
- GlobalSection(ExtensibilityGlobals) = postSolution
- SolutionGuid = {A28F3793-15A7-4EE5-A899-373DF084D91F}
- EndGlobalSection
-EndGlobal