Commit 3097732e75 for freeswitch.com

commit 3097732e75e6e5548d107d1803ee2b38aa6f0bea
Author: Andrey Volk <andywolk@gmail.com>
Date:   Thu Sep 24 17:42:39 2026 +0300

    [Build-System] Windows: Upgrade ldns to v1.9.2_1 and use pre-compiled binaries, remove unused libcelt (#3184)

diff --git a/.gitignore b/.gitignore
index a086940a54..1941e58ade 100644
--- a/.gitignore
+++ b/.gitignore
@@ -293,6 +293,8 @@ libs/pthreads-*/
 libs/pthreads-*.zip
 libs/mpg123-*/
 libs/mpg123-*.zip
+libs/ldns-*/
+libs/ldns-*.zip
 libs/SharpZipLib.*/
 libs/SharpZipLib.*.nupkg
 libs/nasm-*/
diff --git a/Freeswitch.2017.sln b/Freeswitch.2017.sln
index 833a468451..433c5978ba 100644
--- a/Freeswitch.2017.sln
+++ b/Freeswitch.2017.sln
@@ -331,8 +331,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_valet_parking", "src\mo
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_bv", "src\mod\codecs\mod_bv\mod_bv.2017.vcxproj", "{D5C87B19-150D-4EF3-A671-96589BD2D14A}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "libcelt", "libs\win32\celt\libcelt.2017.vcxproj", "{ABB71A76-42B0-47A4-973A-42E3D920C6FD}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "FSComm", "fscomm\FSComm.2017.vcxproj", "{7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_curl", "src\mod\applications\mod_curl\mod_curl.2017.vcxproj", "{EF300386-A8DF-4372-B6D8-FB9BFFCA9AED}"
@@ -357,8 +355,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_pt", "src\mod\say\m
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_say_sv", "src\mod\say\mod_say_sv\mod_say_sv.2017.vcxproj", "{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}"
 EndProject
-Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ldns", "libs\win32\ldns\ldns-lib\ldns-lib.2017.vcxproj", "{23B4D303-79FC-49E0-89E2-2280E7E28940}"
-EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_callcenter", "src\mod\applications\mod_callcenter\mod_callcenter.2017.vcxproj", "{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}"
 EndProject
 Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mod_blacklist", "src\mod\applications\mod_blacklist\mod_blacklist.2017.vcxproj", "{50AAC2CE-BFC9-4912-87CC-C6381850D735}"
@@ -1367,17 +1363,6 @@ Global
 		{D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|Win32.Build.0 = Release|Win32
 		{D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.ActiveCfg = Release|x64
 		{D5C87B19-150D-4EF3-A671-96589BD2D14A}.Release|x64.Build.0 = Release|x64
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|Win32.ActiveCfg = Release|x64
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.ActiveCfg = Release|x64
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.All|x64.Build.0 = Release|x64
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.ActiveCfg = Debug|Win32
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|Win32.Build.0 = Debug|Win32
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.ActiveCfg = Debug|x64
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Debug|x64.Build.0 = Debug|x64
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.ActiveCfg = Release|Win32
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|Win32.Build.0 = Release|Win32
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.ActiveCfg = Release|x64
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD}.Release|x64.Build.0 = Release|x64
 		{7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.ActiveCfg = Release|Win32
 		{7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|Win32.Build.0 = Release|Win32
 		{7D3122C7-C9D0-3748-81F8-F0DDCB40BF5E}.All|x64.ActiveCfg = Release|Win32
@@ -1503,17 +1488,6 @@ Global
 		{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|Win32.Build.0 = Release|Win32
 		{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|x64.ActiveCfg = Release|x64
 		{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15}.Release|x64.Build.0 = Release|x64
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.All|Win32.ActiveCfg = Release|x64
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.ActiveCfg = Release|x64
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.All|x64.Build.0 = Release|x64
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.ActiveCfg = Debug|Win32
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|Win32.Build.0 = Debug|Win32
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.ActiveCfg = Debug|x64
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.Debug|x64.Build.0 = Debug|x64
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.ActiveCfg = Release|Win32
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|Win32.Build.0 = Release|Win32
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.ActiveCfg = Release|x64
-		{23B4D303-79FC-49E0-89E2-2280E7E28940}.Release|x64.Build.0 = Release|x64
 		{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|Win32.ActiveCfg = Release|x64
 		{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64.ActiveCfg = Release|x64
 		{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A}.All|x64.Build.0 = Release|x64
@@ -2261,7 +2235,6 @@ Global
 		{0382E8FD-CFDC-41C0-8B03-792C7C84FC31} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
 		{432DB165-1EB2-4781-A9C0-71E62610B20A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{D5C87B19-150D-4EF3-A671-96589BD2D14A} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
-		{ABB71A76-42B0-47A4-973A-42E3D920C6FD} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
 		{EF300386-A8DF-4372-B6D8-FB9BFFCA9AED} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{AFA983D6-4569-4F88-BA94-555ED00FD9A8} = {F881ADA2-2F1A-4046-9FEB-191D9422D781}
 		{990BAA76-89D3-4E38-8479-C7B28784EFC8} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
@@ -2273,7 +2246,6 @@ Global
 		{5C2B4D88-3BEA-4FE0-90DF-FA9836099D5F} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{7C22BDFF-CC09-400C-8A09-660733980028} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
 		{8CDA2B34-FA44-49CC-9EC2-B8F35856CD15} = {6CD61A1D-797C-470A-BE08-8C31B68BB336}
-		{23B4D303-79FC-49E0-89E2-2280E7E28940} = {EB910B0D-F27D-4B62-B67B-DE834C99AC5B}
 		{47886A6C-CCA6-4F9F-A7D4-F97D06FB2B1A} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{50AAC2CE-BFC9-4912-87CC-C6381850D735} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
 		{A61D7CB4-75A5-4A55-8CA1-BE5AF615D921} = {E72B5BCB-6462-4D23-B419-3AF1A4AC3D78}
diff --git a/libs/.gitignore b/libs/.gitignore
index 06b712abd4..c34ce55599 100644
--- a/libs/.gitignore
+++ b/libs/.gitignore
@@ -52,7 +52,6 @@ opal
 /broadvoice/src/Makefile.in
 /broadvoice/src/stamp-h1
 /broadvoice/tests/regression_tests.sh
-/celt-*/
 /Communicator_semi_40.cd_semi_6000/
 /esl/Debug/
 /esl/Release/
@@ -479,7 +478,6 @@ opal
 /tiff-*/tools/tiffmedian
 /tiff-*/tools/tiffset
 /tiff-*/tools/tiffsplit
-/win32/celt/*/*/libcelt.log
 /win32/libg722_1/*/*/libg722_1.log
 /win32/libshout/*/*/libshout.log
 /win32/tmp*.bat
diff --git a/libs/win32/celt/config.h b/libs/win32/celt/config.h
deleted file mode 100644
index 2eeb58d4a5..0000000000
--- a/libs/win32/celt/config.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/* This is a build of CELT */
-#define CELT_BUILD
-
-/* Version extra */
-#define CELT_EXTRA_VERSION "-1"
-
-/* Version major */
-#define CELT_MAJOR_VERSION 0
-
-/* Version micro */
-#define CELT_MICRO_VERSION 0
-
-/* Version minor */
-#define CELT_MINOR_VERSION 7
-
-/* Complete version string */
-#define CELT_VERSION "0.7.0-1"
-
-/* Compile as fixed-point */
-/* #undef FIXED_POINT */
-
-/* Compile as floating-point */
-#define FLOATING_POINT
-
-/* Make use of alloca */
-/* #undef USE_ALLOCA */
-#define USE_ALLOCA 1 /* disable this when using SSE */
-
-/* Define to equivalent of C99 restrict keyword, or to nothing if this is not
-   supported. Do not define if restrict is supported directly. */
-#define restrict /* __restrict */
-
-// Microsoft version of 'inline'
-#define inline __inline
diff --git a/libs/win32/celt/float_cast.h b/libs/win32/celt/float_cast.h
deleted file mode 100644
index 9caa39b4b3..0000000000
--- a/libs/win32/celt/float_cast.h
+++ /dev/null
@@ -1,114 +0,0 @@
-/*
-** Copyright (C) 2001 Erik de Castro Lopo <erikd AT mega-nerd DOT com>
-**
-** Permission to use, copy, modify, distribute, and sell this file for any
-** purpose is hereby granted without fee, provided that the above copyright
-** and this permission notice appear in all copies.  No representations are
-** made about the suitability of this software for any purpose.  It is
-** provided "as is" without express or implied warranty.
-*/
-
-/* Version 1.1 */
-
-#ifndef FLOAT_CAST_H
-#define FLOAT_CAST_H
-
-/*============================================================================
-**	On Intel Pentium processors (especially PIII and probably P4), converting
-**	from float to int is very slow. To meet the C specs, the code produced by
-**	most C compilers targeting Pentium needs to change the FPU rounding mode
-**	before the float to int conversion is performed.
-**
-**	Changing the FPU rounding mode causes the FPU pipeline to be flushed. It
-**	is this flushing of the pipeline which is so slow.
-**
-**	Fortunately the ISO C99 specifications define the functions lrint, lrintf,
-**	llrint and llrintf which fix this problem as a side effect.
-**
-**	On Unix-like systems, the configure process should have detected the
-**	presence of these functions. If they weren't found we have to replace them
-**	here with a standard C cast.
-*/
-
-/*
-**	The C99 prototypes for lrint and lrintf are as follows:
-**
-**		long int lrintf (float x) ;
-**		long int lrint  (double x) ;
-*/
-
-/*	The presence of the required functions are detected during the configure
-**	process and the values HAVE_LRINT and HAVE_LRINTF are set accordingly in
-**	the config.h file.
-*/
-
-#if (HAVE_LRINTF)
-/*#if 0*/
-
-	/*	These defines enable functionality introduced with the 1999 ISO C
-	**	standard. They must be defined before the inclusion of math.h to
-	**	engage them. If optimisation is enabled, these functions will be
-	**	inlined. With optimisation switched off, you have to link in the
-	**	maths library using -lm.
-	*/
-
-	#define	_ISOC9X_SOURCE	1
-	#define _ISOC99_SOURCE	1
-
-	#define	__USE_ISOC9X	1
-	#define	__USE_ISOC99	1
-
-	#include	<math.h>
-	#define float2int(x) lrintf(x)
-
-#elif (defined(HAVE_LRINT))
-
-#define	_ISOC9X_SOURCE	1
-#define _ISOC99_SOURCE	1
-
-#define	__USE_ISOC9X	1
-#define	__USE_ISOC99	1
-
-#include	<math.h>
-#define float2int(x) lrint(x)
-
-#elif (defined (WIN32) || defined (_WIN32))
-
-	#include	<math.h>
-
-	/*	Win32 doesn't seem to have these functions.
-	**	Therefore implement inline versions of these functions here.
-	*/
-
-#ifndef _WIN64
-	__inline long int
-	float2int (float flt)
-	{	int intgr;
-
-		_asm
-		{	fld flt
-			fistp intgr
-			} ;
-
-		return intgr ;
-	}
-#else
-#define float2int
-#endif
-
-
-#else
-
-#ifdef __GNUC__ /* supported by gcc, but not by all other compilers*/
-	#warning "Don't have the functions lrint() and lrintf ()."
-	#warning "Replacing these functions with a standard C cast."
-#endif /* __GNUC__ */
-
-	#include	<math.h>
-
-	#define	float2int(flt)		((int)(floor(.5+flt)))
-
-#endif
-
-
-#endif /* FLOAT_CAST_H */
diff --git a/libs/win32/celt/libcelt.2017.vcxproj b/libs/win32/celt/libcelt.2017.vcxproj
deleted file mode 100644
index 03c1461d4e..0000000000
--- a/libs/win32/celt/libcelt.2017.vcxproj
+++ /dev/null
@@ -1,157 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="15.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="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectGuid>{ABB71A76-42B0-47A4-973A-42E3D920C6FD}</ProjectGuid>
-    <RootNamespace>celt</RootNamespace>
-    <Keyword>Win32Proj</Keyword>
-    <ProjectName>libcelt</ProjectName>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>Unicode</CharacterSet>
-    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <Import Project="$(SolutionDir)\w32\download_celt.props" Condition=" '$(downloadceltPropsImported)' == '' " />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\w32\extlib.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\w32\extlib.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\w32\extlib.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\w32\extlib.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.30319.1</_ProjectFileVersion>
-  </PropertyGroup>
-  <ItemDefinitionGroup>
-    <ClCompile>
-      <AdditionalIncludeDirectories>.\;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\celt-0.10.0\libcelt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <DisableSpecificWarnings>4305;4267;4101;4554;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <Midl>
-      <TargetEnvironment>X64</TargetEnvironment>
-    </Midl>
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\celt-0.10.0\libcelt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;_DEBUG;_LIB;HAVE_CONFIG_H;_AMD64_;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <DisableSpecificWarnings>4305;4267;4101;4554;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <Optimization>MaxSpeed</Optimization>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>..\..\celt-0.10.0\libcelt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <WarningLevel>Level3</WarningLevel>
-      <DisableSpecificWarnings>4305;4267;4101;4554;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <Midl>
-      <TargetEnvironment>X64</TargetEnvironment>
-    </Midl>
-    <ClCompile>
-      <Optimization>MaxSpeed</Optimization>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <AdditionalIncludeDirectories>..\..\celt-0.10.0\libcelt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>WIN32;NDEBUG;_LIB;HAVE_CONFIG_H;_AMD64_;_WIN64;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <WarningLevel>Level3</WarningLevel>
-      <DisableSpecificWarnings>4305;4267;4101;4554;4018;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\bands.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\celt.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\cwrs.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\entcode.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\entdec.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\entenc.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\header.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\kiss_fft.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\laplace.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\mathops.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\mdct.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\modes.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\pitch.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\plc.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\quant_bands.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\rangedec.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\rangeenc.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\rate.c" />
-    <ClCompile Include="..\..\celt-0.10.0\libcelt\vq.c" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/libs/win32/ldns/ldns-lib/config.h b/libs/win32/ldns/ldns-lib/config.h
deleted file mode 100644
index fb29bc2c7c..0000000000
--- a/libs/win32/ldns/ldns-lib/config.h
+++ /dev/null
@@ -1,452 +0,0 @@
-/* ldns/config.h.in.  Generated from configure.ac by autoheader.  */
-
-/* Define if building universal (internal helper macro) */
-#undef AC_APPLE_UNIVERSAL_BUILD
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#undef HAVE_ARPA_INET_H
-
-/* Whether the C compiler accepts the "format" attribute */
-#undef HAVE_ATTR_FORMAT
-
-/* Whether the C compiler accepts the "unused" attribute */
-#undef HAVE_ATTR_UNUSED
-
-/* Define to 1 if you have the `b32_ntop' function. */
-#undef HAVE_B32_NTOP
-
-/* Define to 1 if you have the `b32_pton' function. */
-#undef HAVE_B32_PTON
-
-/* Define to 1 if you have the `b64_ntop' function. */
-#undef HAVE_B64_NTOP
-
-/* Define to 1 if you have the `b64_pton' function. */
-#undef HAVE_B64_PTON
-
-/* Define to 1 if you have the `ctime_r' function. */
-#undef HAVE_CTIME_R
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#undef HAVE_DLFCN_H
-
-/* Define to 1 if you have the `endprotoent' function. */
-#undef HAVE_ENDPROTOENT
-
-/* Define to 1 if you have the `endservent' function. */
-#undef HAVE_ENDSERVENT
-
-/* Define to 1 if you have the `EVP_sha256' function. */
-#undef HAVE_EVP_SHA256
-
-/* Whether getaddrinfo is available */
-#undef HAVE_GETADDRINFO
-
-/* Define to 1 if you have the <getopt.h> header file. */
-#undef HAVE_GETOPT_H
-
-/* Define to 1 if you have the `gmtime_r' function. */
-#undef HAVE_GMTIME_R
-
-/* If you have HMAC_CTX_init */
-#undef HAVE_HMAC_CTX_INIT
-
-/* Define to 1 if you have the `inet_aton' function. */
-#undef HAVE_INET_ATON
-
-/* Define to 1 if you have the `inet_ntop' function. */
-#undef HAVE_INET_NTOP
-
-/* Define to 1 if you have the `inet_pton' function. */
-#undef HAVE_INET_PTON
-
-/* define if you have inttypes.h */
-#undef HAVE_INTTYPES_H
-
-/* Define to 1 if you have the `isblank' function. */
-#undef HAVE_ISBLANK
-
-/* Define to 1 if you have the `crypto' library (-lcrypto). */
-#undef HAVE_LIBCRYPTO
-
-/* Define to 1 if you have the `nsl' library (-lnsl). */
-#undef HAVE_LIBNSL
-
-/* Define to 1 if you have the `socket' library (-lsocket). */
-#undef HAVE_LIBSOCKET
-
-/* Define to 1 if your system has a GNU libc compatible `malloc' function, and
-   to 0 otherwise. */
-#define HAVE_MALLOC 1
-
-/* Define to 1 if you have the `memmove' function. */
-#define HAVE_MEMMOVE 1
-
-/* Define to 1 if you have the <memory.h> header file. */
-#undef HAVE_MEMORY_H
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#undef HAVE_NETDB_H
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#undef HAVE_NETINET_IN_H
-
-/* Define to 1 if you have the <openssl/err.h> header file. */
-#undef HAVE_OPENSSL_ERR_H
-
-/* Define to 1 if you have the <openssl/rand.h> header file. */
-#undef HAVE_OPENSSL_RAND_H
-
-/* Define to 1 if you have the <openssl/ssl.h> header file. */
-#undef HAVE_OPENSSL_SSL_H
-
-/* Define to 1 if you have the `random' function. */
-#define HAVE_RANDOM 1
-
-/* Define to 1 if your system has a GNU libc compatible `realloc' function,
-   and to 0 otherwise. */
-#define HAVE_REALLOC 1
-
-/* Define to 1 if you have the `sleep' function. */
-#undef HAVE_SLEEP
-
-/* Define to 1 if you have the `snprintf' function. */
-#define HAVE_SNPRINTF 1
-
-/* Define if you have the SSL libraries installed. */
-#undef HAVE_SSL
-
-/* Define to 1 if you have the <stdarg.h> header file. */
-#undef HAVE_STDARG_H
-
-/* Define to 1 if you have the <stdbool.h> header file. */
-#undef HAVE_STDBOOL_H
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#undef HAVE_STDINT_H
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#undef HAVE_STDLIB_H
-
-/* Define to 1 if you have the <strings.h> header file. */
-#undef HAVE_STRINGS_H
-
-/* Define to 1 if you have the <string.h> header file. */
-#undef HAVE_STRING_H
-
-/* Define to 1 if you have the `strlcpy' function. */
-#undef HAVE_STRLCPY
-
-/* Define to 1 if you have the <sys/mount.h> header file. */
-#undef HAVE_SYS_MOUNT_H
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#undef HAVE_SYS_PARAM_H
-
-/* define if you have sys/socket.h */
-#undef HAVE_SYS_SOCKET_H
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#undef HAVE_SYS_STAT_H
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#undef HAVE_SYS_TYPES_H
-
-/* Define to 1 if you have the `timegm' function. */
-#undef HAVE_TIMEGM
-
-/* Define to 1 if you have the <time.h> header file. */
-#undef HAVE_TIME_H
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#undef HAVE_UNISTD_H
-
-/* Define to 1 if you have the <winsock2.h> header file. */
-#define HAVE_WINSOCK2_H 1
-
-/* Define to 1 if you have the <ws2tcpip.h> header file. */
-#undef HAVE_WS2TCPIP_H
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
-   */
-#undef LT_OBJDIR
-
-/* Define to the address where bug reports for this package should be sent. */
-#undef PACKAGE_BUGREPORT
-
-/* Define to the full name of this package. */
-#undef PACKAGE_NAME
-
-/* Define to the full name and version of this package. */
-#undef PACKAGE_STRING
-
-/* Define to the one symbol short name of this package. */
-#undef PACKAGE_TARNAME
-
-/* Define to the version of this package. */
-#undef PACKAGE_VERSION
-
-/* Define to 1 if you have the ANSI C header files. */
-#undef STDC_HEADERS
-
-/* System configuration dir */
-#undef SYSCONFDIR
-
-/* Define this to enable GOST support. */
-#undef USE_GOST
-
-/* Define this to enable SHA256 and SHA512 support. */
-#undef USE_SHA2
-
-/* Enable extensions on AIX 3, Interix.  */
-#ifndef _ALL_SOURCE
-# undef _ALL_SOURCE
-#endif
-/* Enable GNU extensions on systems that have them.  */
-#ifndef _GNU_SOURCE
-# undef _GNU_SOURCE
-#endif
-/* Enable threading extensions on Solaris.  */
-#ifndef _POSIX_PTHREAD_SEMANTICS
-# undef _POSIX_PTHREAD_SEMANTICS
-#endif
-/* Enable extensions on HP NonStop.  */
-#ifndef _TANDEM_SOURCE
-# undef _TANDEM_SOURCE
-#endif
-/* Enable general extensions on Solaris.  */
-#ifndef __EXTENSIONS__
-# undef __EXTENSIONS__
-#endif
-
-
-/* Whether the windows socket API is used */
-#define USE_WINSOCK
-
-/* the version of the windows API enabled */
-//#undef WINVER
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
-   significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-#  define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-#  undef WORDS_BIGENDIAN
-# endif
-#endif
-
-/* Define to 1 if on MINIX. */
-#undef _MINIX
-
-/* Define to 2 if the system does not provide POSIX.1 features except with
-   this defined. */
-#undef _POSIX_1_SOURCE
-
-/* Define to 1 if you need to in order for `stat' and other things to work. */
-#undef _POSIX_SOURCE
-
-/* Define to empty if `const' does not conform to ANSI C. */
-#undef const
-
-/* in_addr_t */
-#undef in_addr_t
-
-/* in_port_t */
-#undef in_port_t
-
-/* Define to `__inline__' or `__inline' if that's what the C compiler
-   calls it, or to nothing if 'inline' is not supported under any name.  */
-#ifndef __cplusplus
-#ifndef _WIN32
-#define inline /* Do not define inline for Windows to avoid warnings/errors with winsock2.h usage of inline within the latest Windows SDKs */
-#endif
-#endif
-
-#if _MSC_VER >= 1900
-#include <stdint.h>
-#else
-/* Define to `short' if <sys/types.h> does not define. */
-#undef int16_t
-
-/* Define to `int' if <sys/types.h> does not define. */
-#undef int32_t
-
-/* Define to `long long' if <sys/types.h> does not define. */
-#undef int64_t
-
-/* Define to `char' if <sys/types.h> does not define. */
-#undef int8_t
-
-/* Define to rpl_malloc if the replacement function should be used. */
-#undef malloc
-
-/* Define to rpl_realloc if the replacement function should be used. */
-#undef realloc
-
-/* Define to 'int' if not defined */
-#undef socklen_t
-
-/* Define to `unsigned short' if <sys/types.h> does not define. */
-#define uint16_t unsigned short
-
-#define int16_t short
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-#define uint32_t unsigned int
-
-/* Define to `unsigned long long' if <sys/types.h> does not define. */
-#define uint64_t unsigned long long
-
-/* Define to `unsigned char' if <sys/types.h> does not define. */
-#define uint8_t unsigned char
-
-#define int8_t char
-
-#endif
-/* Define to `int' if <sys/types.h> does not define. */
-#define ssize_t int
-
-
-#include <stdio.h>
-#include <string.h>
-//#include <unistd.h>
-#include <assert.h>
-
-#ifndef LITTLE_ENDIAN
-#define LITTLE_ENDIAN 1234
-#endif
-
-#ifndef BIG_ENDIAN
-#define BIG_ENDIAN 4321
-#endif
-
-#ifndef BYTE_ORDER
-#ifdef WORDS_BIGENDIAN
-#define BYTE_ORDER BIG_ENDIAN
-#else
-#define BYTE_ORDER LITTLE_ENDIAN
-#endif /* WORDS_BIGENDIAN */
-#endif /* BYTE_ORDER */
-
-#if STDC_HEADERS
-#include <stdlib.h>
-#include <stddef.h>
-#endif
-
-#ifdef HAVE_STDINT_H
-#include <stdint.h>
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_WINSOCK2_H
-#include <winsock2.h>
-#endif
-
-#ifdef HAVE_WS2TCPIP_H
-#include <ws2tcpip.h>
-#endif
-
-#ifdef _MSC_VER
-#if _MSC_VER < 1900
-#define snprintf _snprintf
-#else
-#ifndef HAVE_ISBLANK
-#define HAVE_ISBLANK
-#endif
-#endif
-#define vsnprintf _vsnprintf
-#define strcasecmp _stricmp
-#define strncasecmp _strnicmp
-#define strdup _strdup
-/*
-#define gmtime gmtime_s
-#define ctime ctime_s
-#define strcpy strcpu_s
-*/
-#define putenv _putenv
-#define srandom srand
-#define random rand
-#endif
-
-#ifndef B64_PTON
-int ldns_b64_ntop(uint8_t const *src, size_t srclength,
-	 	  char *target, size_t targsize);
-/**
- * calculates the size needed to store the result of b64_ntop
- */
-/*@unused@*/
-inline static size_t ldns_b64_ntop_calculate_size(size_t srcsize)
-{
-	return ((((srcsize + 2) / 3) * 4) + 1);
-}
-#endif /* !B64_PTON */
-#ifndef B64_NTOP
-int ldns_b64_pton(char const *src, uint8_t *target, size_t targsize);
-/**
- * calculates the size needed to store the result of ldns_b64_pton
- */
-/*@unused@*/
-inline static size_t ldns_b64_pton_calculate_size(size_t srcsize)
-{
-	return ((((srcsize / 4) * 3) - 2) + 2);
-}
-#endif /* !B64_NTOP */
-
-#ifndef HAVE_SLEEP
-/* use windows sleep, in millisecs, instead */
-#define sleep(x) Sleep((x)*1000)
-#endif
-
-#ifndef HAVE_RANDOM
-#define srandom(x) srand(x)
-#define random(x) rand(x)
-#endif
-
-#ifndef HAVE_TIMEGM
-#include <time.h>
-time_t timegm (struct tm *tm);
-#endif /* !TIMEGM */
-#ifndef HAVE_GMTIME_R
-struct tm *gmtime_r(const time_t *timep, struct tm *result);
-#endif
-#ifndef HAVE_ISBLANK
-int isblank(int c);
-#endif /* !HAVE_ISBLANK */
-#ifndef HAVE_SNPRINTF
-#include <stdarg.h>
-int snprintf (char *str, size_t count, const char *fmt, ...);
-int vsnprintf (char *str, size_t count, const char *fmt, va_list arg);
-#endif /* HAVE_SNPRINTF */
-#ifndef HAVE_INET_PTON
-int inet_pton(int af, const char* src, void* dst);
-#endif /* HAVE_INET_PTON */
-#ifndef HAVE_INET_NTOP
-const char *inet_ntop(int af, const void *src, char *dst, size_t size);
-#endif
-#ifndef HAVE_INET_ATON
-int inet_aton(const char *cp, struct in_addr *addr);
-#endif
-#ifndef HAVE_MEMMOVE
-void *memmove(void *dest, const void *src, size_t n);
-#endif
-#ifndef HAVE_STRLCPY
-size_t strlcpy(char *dst, const char *src, size_t siz);
-#endif
-#ifndef HAVE_GETADDRINFO
-#include "compat/fake-rfc2553.h"
-#endif
-
diff --git a/libs/win32/ldns/ldns-lib/ldns-lib.2017.vcxproj b/libs/win32/ldns/ldns-lib/ldns-lib.2017.vcxproj
deleted file mode 100644
index f9d7b0e98e..0000000000
--- a/libs/win32/ldns/ldns-lib/ldns-lib.2017.vcxproj
+++ /dev/null
@@ -1,267 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="15.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="Debug|x64">
-      <Configuration>Debug</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|Win32">
-      <Configuration>Release</Configuration>
-      <Platform>Win32</Platform>
-    </ProjectConfiguration>
-    <ProjectConfiguration Include="Release|x64">
-      <Configuration>Release</Configuration>
-      <Platform>x64</Platform>
-    </ProjectConfiguration>
-  </ItemGroup>
-  <PropertyGroup Label="Globals">
-    <ProjectName>ldns</ProjectName>
-    <ProjectGuid>{23B4D303-79FC-49E0-89E2-2280E7E28940}</ProjectGuid>
-    <RootNamespace>ldns</RootNamespace>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-    <WholeProgramOptimization>true</WholeProgramOptimization>
-    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
-    <ConfigurationType>StaticLibrary</ConfigurationType>
-    <CharacterSet>MultiByte</CharacterSet>
-    <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
-  </PropertyGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
-  <Import Project="$(SolutionDir)\w32\download_LDNS.props" Condition=" '$(downloadLDNSPropsImported)' == '' " />
-  <ImportGroup Label="ExtensionSettings">
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\..\w32\extdll.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\..\w32\extdll.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\..\w32\extdll.props" />
-  </ImportGroup>
-  <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="PropertySheets">
-    <Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
-    <Import Project="..\..\..\..\w32\extdll.props" />
-  </ImportGroup>
-  <PropertyGroup Label="UserMacros" />
-  <PropertyGroup>
-    <_ProjectFileVersion>10.0.40219.1</_ProjectFileVersion>
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'" />
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" />
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">AllRules.ruleset</CodeAnalysisRuleSet>
-    <CodeAnalysisRuleSet Condition="'$(Configuration)|$(Platform)'=='Release|x64'">AllRules.ruleset</CodeAnalysisRuleSet>
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
-    <CodeAnalysisRules Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" />
-    <CodeAnalysisRuleAssemblies Condition="'$(Configuration)|$(Platform)'=='Release|x64'" />
-  </PropertyGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\ldns\;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>HAVE_ISBLANK;HAVE_STRUCT_ADDRINFO;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <MinimalRebuild>true</MinimalRebuild>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <DisableSpecificWarnings>4013;4101;4996;4267;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <PreBuildEvent>
-      <Command>if not exist "$(ProjectDir)..\..\..\ldns\ldns\config.h" type "$(ProjectDir)\config.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\config.h"
-if not exist "$(ProjectDir)..\..\..\ldns\ldns\util.h" type "$(ProjectDir)\util.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\util.h"
-if not exist "$(ProjectDir)..\..\..\ldns\ldns\net.h" type "$(ProjectDir)\net.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\net.h"</Command>
-    </PreBuildEvent>
-    <Lib>
-      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
-    <ClCompile>
-      <Optimization>Disabled</Optimization>
-      <AdditionalIncludeDirectories>..\..\..\ldns\;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <PreprocessorDefinitions>HAVE_ISBLANK;HAVE_STRUCT_ADDRINFO;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <BasicRuntimeChecks>EnableFastChecks</BasicRuntimeChecks>
-      <RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <DisableSpecificWarnings>4013;4101;4996;4267;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <PreBuildEvent>
-      <Command>if not exist "$(ProjectDir)..\..\..\ldns\ldns\config.h" type "$(ProjectDir)\config.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\config.h"
-if not exist "$(ProjectDir)..\..\..\ldns\ldns\util.h" type "$(ProjectDir)\util.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\util.h"
-if not exist "$(ProjectDir)..\..\..\ldns\ldns\net.h" type "$(ProjectDir)\net.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\net.h"</Command>
-    </PreBuildEvent>
-    <Lib>
-      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
-    <ClCompile>
-      <Optimization>MaxSpeed</Optimization>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <PreprocessorDefinitions>HAVE_ISBLANK;HAVE_STRUCT_ADDRINFO;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\..\ldns\;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <DisableSpecificWarnings>4013;4101;4996;4267;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <TargetMachine>MachineX86</TargetMachine>
-    </Link>
-    <PreBuildEvent>
-      <Command>if not exist "$(ProjectDir)..\..\..\ldns\ldns\config.h" type "$(ProjectDir)\config.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\config.h"
-if not exist "$(ProjectDir)..\..\..\ldns\ldns\util.h" type "$(ProjectDir)\util.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\util.h"
-if not exist "$(ProjectDir)..\..\..\ldns\ldns\net.h" type "$(ProjectDir)\net.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\net.h"</Command>
-    </PreBuildEvent>
-    <Lib>
-      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
-    <ClCompile>
-      <Optimization>MaxSpeed</Optimization>
-      <IntrinsicFunctions>true</IntrinsicFunctions>
-      <RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
-      <FunctionLevelLinking>true</FunctionLevelLinking>
-      <WarningLevel>Level3</WarningLevel>
-      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
-      <PreprocessorDefinitions>HAVE_ISBLANK;HAVE_STRUCT_ADDRINFO;HAVE_CONFIG_H;_CRT_SECURE_NO_DEPRECATE;_MBCS;%(PreprocessorDefinitions)</PreprocessorDefinitions>
-      <AdditionalIncludeDirectories>..\..\..\ldns\;.;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
-      <DisableSpecificWarnings>4013;4101;4996;4267;4244;%(DisableSpecificWarnings)</DisableSpecificWarnings>
-    </ClCompile>
-    <Link>
-      <GenerateDebugInformation>true</GenerateDebugInformation>
-      <OptimizeReferences>true</OptimizeReferences>
-      <EnableCOMDATFolding>true</EnableCOMDATFolding>
-      <AdditionalDependencies>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>
-    <PreBuildEvent>
-      <Command>if not exist "$(ProjectDir)..\..\..\ldns\ldns\config.h" type "$(ProjectDir)\config.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\config.h"
-if not exist "$(ProjectDir)..\..\..\ldns\ldns\util.h" type "$(ProjectDir)\util.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\util.h"
-if not exist "$(ProjectDir)..\..\..\ldns\ldns\net.h" type "$(ProjectDir)\net.h" &gt; "$(ProjectDir)..\..\..\ldns\ldns\net.h"</Command>
-    </PreBuildEvent>
-    <Lib>
-      <AdditionalOptions>/ignore:4221 %(AdditionalOptions)</AdditionalOptions>
-    </Lib>
-  </ItemDefinitionGroup>
-  <ItemGroup>
-    <ClCompile Include="..\..\..\ldns\compat\b32_ntop.c" />
-    <ClCompile Include="..\..\..\ldns\compat\b32_pton.c" />
-    <ClCompile Include="..\..\..\ldns\compat\b64_ntop.c" />
-    <ClCompile Include="..\..\..\ldns\compat\b64_pton.c" />
-    <ClCompile Include="..\..\..\ldns\buffer.c" />
-    <ClCompile Include="..\..\..\ldns\compat\ctime_r.c" />
-    <ClCompile Include="..\..\..\ldns\dname.c" />
-    <ClCompile Include="..\..\..\ldns\dnssec.c" />
-    <ClCompile Include="..\..\..\ldns\dnssec_sign.c" />
-    <ClCompile Include="..\..\..\ldns\dnssec_verify.c" />
-    <ClCompile Include="..\..\..\ldns\dnssec_zone.c" />
-    <ClCompile Include="..\..\..\ldns\error.c" />
-    <ClCompile Include="..\..\..\ldns\compat\fake-rfc2553.c" />
-    <ClCompile Include="..\..\..\ldns\compat\gettimeofday.c" />
-    <ClCompile Include="..\..\..\ldns\compat\gmtime_r.c" />
-    <ClCompile Include="..\..\..\ldns\higher.c" />
-    <ClCompile Include="..\..\..\ldns\host2str.c" />
-    <ClCompile Include="..\..\..\ldns\host2wire.c" />
-    <ClCompile Include="..\..\..\ldns\compat\inet_aton.c" />
-    <ClCompile Include="..\..\..\ldns\compat\inet_ntop.c" />
-    <ClCompile Include="..\..\..\ldns\compat\inet_pton.c" />
-    <ClCompile Include="..\..\..\ldns\keys.c" />
-    <ClCompile Include="..\..\..\ldns\linktest.c" />
-    <ClCompile Include="..\..\..\ldns\compat\malloc.c" />
-    <ClCompile Include="..\..\..\ldns\compat\memmove.c" />
-    <ClCompile Include="..\..\..\ldns\net.c" />
-    <ClCompile Include="..\..\..\ldns\packet.c" />
-    <ClCompile Include="..\..\..\ldns\parse.c" />
-    <ClCompile Include="..\..\..\ldns\rbtree.c" />
-    <ClCompile Include="..\..\..\ldns\rdata.c" />
-    <ClCompile Include="..\..\..\ldns\compat\realloc.c" />
-    <ClCompile Include="..\..\..\ldns\resolver.c" />
-    <ClCompile Include="..\..\..\ldns\rr.c" />
-    <ClCompile Include="..\..\..\ldns\rr_functions.c" />
-    <ClCompile Include="..\..\..\ldns\sha1.c" />
-    <ClCompile Include="..\..\..\ldns\sha2.c" />
-    <ClCompile Include="..\..\..\ldns\compat\snprintf.c" />
-    <ClCompile Include="..\..\..\ldns\str2host.c" />
-    <ClCompile Include="..\..\..\ldns\compat\strlcpy.c" />
-    <ClCompile Include="..\..\..\ldns\compat\timegm.c" />
-    <ClCompile Include="..\..\..\ldns\tsig.c" />
-    <ClCompile Include="..\..\..\ldns\update.c" />
-    <ClCompile Include="..\..\..\ldns\util.c" />
-    <ClCompile Include="..\..\..\ldns\wire2host.c" />
-    <ClCompile Include="..\..\..\ldns\zone.c" />
-  </ItemGroup>
-  <ItemGroup>
-    <ClInclude Include="..\..\..\ldns\compat\fake-rfc2553.h" />
-    <ClInclude Include="..\..\..\ldns\compat\gettimeofday.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\buffer.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\common.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\config.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\dname.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\dnssec.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\dnssec_sign.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\dnssec_verify.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\dnssec_zone.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\error.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\higher.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\host2str.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\host2wire.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\keys.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\ldns.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\net.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\packet.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\parse.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\rbtree.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\rdata.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\resolver.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\rr.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\rr_functions.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\sha1.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\sha2.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\str2host.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\tsig.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\update.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\util.h" />
-    <ClInclude Include="..\..\..\ldns\ldns\zone.h" />
-  </ItemGroup>
-  <ItemGroup>
-    <None Include="ldns\util.h.in" />
-    <None Include="ldns\readme.txt" />
-  </ItemGroup>
-  <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
-  <ImportGroup Label="ExtensionTargets">
-  </ImportGroup>
-</Project>
\ No newline at end of file
diff --git a/libs/win32/ldns/ldns-lib/net.h b/libs/win32/ldns/ldns-lib/net.h
deleted file mode 100644
index 19b6d784e6..0000000000
--- a/libs/win32/ldns/ldns-lib/net.h
+++ /dev/null
@@ -1,195 +0,0 @@
-/*
- * net.h
- *
- * DNS Resolver definitions
- *
- * a Net::DNS like library for C
- *
- * (c) NLnet Labs, 2005-2006
- *
- * See the file LICENSE for the license
- */
-
-#ifndef LDNS_NET_H
-#define LDNS_NET_H
-
-#include <ldns/ldns.h>
-#ifdef _MSC_VER
-#include <winsock2.h>
-#define socklen_t int
-#define in_port_t USHORT
-#define in_addr_t UINT
-#else
-#include <sys/socket.h>
-#include <netdb.h>
-#endif
-
-#define LDNS_DEFAULT_TIMEOUT_SEC 2
-#define LDNS_DEFAULT_TIMEOUT_USEC 0
-
-/**
- * \file
- *
- * Contains functions to send and receive packets over a network.
- */
-
-/**
- * Sends a buffer to an ip using udp and return the respons as a ldns_pkt
- * \param[in] qbin the ldns_buffer to be send
- * \param[in] to the ip addr to send to
- * \param[in] tolen length of the ip addr
- * \param[in] timeout the timeout value for the network
- * \param[out] answersize size of the packet
- * \param[out] result packet with the answer
- * \return status
- */
-ldns_status ldns_udp_send(uint8_t **result, ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout, size_t *answersize);
-
-/**
- * Send an udp query and don't wait for an answer but return
- * the socket
- * \param[in] qbin the ldns_buffer to be send
- * \param[in] to the ip addr to send to
- * \param[in] tolen length of the ip addr
- * \param[in] timeout the timeout value for the network
- * \return the socket used
- */
-
-int ldns_udp_bgsend(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout);
-
-/**
- * Send an tcp query and don't wait for an answer but return
- * the socket
- * \param[in] qbin the ldns_buffer to be send
- * \param[in] to the ip addr to send to
- * \param[in] tolen length of the ip addr
- * \param[in] timeout the timeout value for the network
- * \return the socket used
- */
-int ldns_tcp_bgsend(ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout);
-
-/**
- * Sends a buffer to an ip using tcp and return the respons as a ldns_pkt
- * \param[in] qbin the ldns_buffer to be send
- * \param[in] qbin the ldns_buffer to be send
- * \param[in] to the ip addr to send to
- * \param[in] tolen length of the ip addr
- * \param[in] timeout the timeout value for the network
- * \param[out] answersize size of the packet
- * \param[out] result packet with the answer
- * \return status
- */
-ldns_status ldns_tcp_send(uint8_t **result, ldns_buffer *qbin, const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout, size_t *answersize);
-
-/**
- * Sends ptk to the nameserver at the resolver object. Returns the data
- * as a ldns_pkt
- *
- * \param[out] pkt packet received from the nameserver
- * \param[in] r the resolver to use
- * \param[in] query_pkt the query to send
- * \return status
- */
-ldns_status ldns_send(ldns_pkt **pkt, ldns_resolver *r, const ldns_pkt *query_pkt);
-
-/**
- * Sends and ldns_buffer (presumably containing a packet to the nameserver at the resolver object. Returns the data
- * as a ldns_pkt
- *
- * \param[out] pkt packet received from the nameserver
- * \param[in] r the resolver to use
- * \param[in] qb the buffer to send
- * \param[in] tsig_mac the tsig MAC to authenticate the response with (NULL to do no TSIG authentication)
- * \return status
- */
-ldns_status ldns_send_buffer(ldns_pkt **pkt, ldns_resolver *r, ldns_buffer *qb, ldns_rdf *tsig_mac);
-
-/**
- * Create a tcp socket to the specified address
- * \param[in] to ip and family
- * \param[in] tolen length of to
- * \param[in] timeout timeout for the socket
- * \return a socket descriptor
- */
-int ldns_tcp_connect(const struct sockaddr_storage *to, socklen_t tolen, struct timeval timeout);
-
-/**
- * Create a udp socket to the specified address
- * \param[in] to ip and family
- * \param[in] timeout timeout for the socket
- * \return a socket descriptor
- */
-int ldns_udp_connect(const struct sockaddr_storage *to, struct timeval timeout);
-
-/**
- * send a query via tcp to a server. Don't want for the answer
- *
- * \param[in] qbin the buffer to send
- * \param[in] sockfd the socket to use
- * \param[in] to which ip to send it
- * \param[in] tolen socketlen
- * \return number of bytes sent
- */
-ssize_t ldns_tcp_send_query(ldns_buffer *qbin, int sockfd, const struct sockaddr_storage *to, socklen_t tolen);
-
-/**
- * send a query via udp to a server. Don;t want for the answer
- *
- * \param[in] qbin the buffer to send
- * \param[in] sockfd the socket to use
- * \param[in] to which ip to send it
- * \param[in] tolen socketlen
- * \return number of bytes sent
- */
-ssize_t ldns_udp_send_query(ldns_buffer *qbin, int sockfd, const struct sockaddr_storage *to, socklen_t tolen);
-/**
- * Gives back a raw packet from the wire and reads the header data from the given
- * socket. Allocates the data (of size size) itself, so don't forget to free
- *
- * \param[in] sockfd the socket to read from
- * \param[out] size the number of bytes that are read
- * \return the data read
- */
-uint8_t *ldns_tcp_read_wire(int sockfd, size_t *size);
-
-/**
- * Gives back a raw packet from the wire and reads the header data from the given
- * socket. Allocates the data (of size size) itself, so don't forget to free
- *
- * \param[in] sockfd the socket to read from
- * \param[in] fr the address of the client (if applicable)
- * \param[in] *frlen the lenght of the client's addr (if applicable)
- * \param[out] size the number of bytes that are read
- * \return the data read
- */
-uint8_t *ldns_udp_read_wire(int sockfd, size_t *size, struct sockaddr_storage *fr, socklen_t *frlen);
-
-/**
- * returns the native sockaddr representation from the rdf.
- * \param[in] rd the ldns_rdf to operate on
- * \param[in] port what port to use. 0 means; use default (53)
- * \param[out] size what is the size of the sockaddr_storage
- * \return struct sockaddr* the address in the format so other
- * functions can use it (sendto)
- */
-struct sockaddr_storage * ldns_rdf2native_sockaddr_storage(const ldns_rdf *rd, uint16_t port, size_t *size);
-
-/**
- * returns an rdf with the sockaddr info. works for ip4 and ip6
- * \param[in] sock the struct sockaddr_storage to convert
- * \param[in] port what port was used. When NULL this is not set
- * \return ldns_rdf* wth the address
- */
-ldns_rdf * ldns_sockaddr_storage2rdf(struct sockaddr_storage *sock, uint16_t *port);
-
-/**
- * Prepares the resolver for an axfr query
- * The query is sent and the answers can be read with ldns_axfr_next
- * \param[in] resolver the resolver to use
- * \param[in] domain the domain to exfr
- * \param[in] c the class to use
- * \return ldns_status the status of the transfer
- */
-ldns_status ldns_axfr_start(ldns_resolver *resolver, ldns_rdf *domain, ldns_rr_class c);
-
-#endif  /* LDNS_NET_H */
diff --git a/libs/win32/ldns/ldns-lib/util.h b/libs/win32/ldns/ldns-lib/util.h
deleted file mode 100644
index add9a79c33..0000000000
--- a/libs/win32/ldns/ldns-lib/util.h
+++ /dev/null
@@ -1,326 +0,0 @@
-/*
- * util.h
- *
- * helper function header file
- *
- * a Net::DNS like library for C
- *
- * (c) NLnet Labs, 2004
- *
- * See the file LICENSE for the license
- */
-
-#ifndef _UTIL_H
-#define _UTIL_H
-
-//@include_inttypes_h@
-#include <ldns/common.h>
-#include <time.h>
-#include <stdio.h>
-
-#define dprintf(X,Y) fprintf(stderr, (X), (Y))
-/* #define	dprintf(X, Y)  */
-
-#define LDNS_VERSION "@PACKAGE_VERSION@"
-
-/**
- * splint static inline workaround
- */
-#ifdef S_SPLINT_S
-#define INLINE
-#else
-#define INLINE static inline
-#endif
-
-/**
- * Memory management macros
- */
-#define LDNS_MALLOC(type)		LDNS_XMALLOC(type, 1)
-
-#define LDNS_XMALLOC(type, count)	((type *) malloc((count) * sizeof(type)))
-
-#define LDNS_REALLOC(ptr, type)		LDNS_XREALLOC((ptr), type, 1)
-
-#define LDNS_XREALLOC(ptr, type, count)				\
-	((type *) realloc((ptr), (count) * sizeof(type)))
-
-#define LDNS_FREE(ptr) \
-	do { free((ptr)); (ptr) = NULL; } while (0)
-
-#define LDNS_DEP     printf("DEPRECATED FUNCTION!\n");
-
-/*
- * Copy data allowing for unaligned accesses in network byte order
- * (big endian).
- */
-INLINE uint16_t
-ldns_read_uint16(const void *src)
-{
-#ifdef ALLOW_UNALIGNED_ACCESSES
-	return ntohs(*(uint16_t *) src);
-#else
-	uint8_t *p = (uint8_t *) src;
-	return ((uint16_t) p[0] << 8) | (uint16_t) p[1];
-#endif
-}
-
-INLINE uint32_t
-ldns_read_uint32(const void *src)
-{
-#ifdef ALLOW_UNALIGNED_ACCESSES
-	return ntohl(*(uint32_t *) src);
-#else
-	uint8_t *p = (uint8_t *) src;
-	return (  ((uint32_t) p[0] << 24)
-		| ((uint32_t) p[1] << 16)
-		| ((uint32_t) p[2] << 8)
-		|  (uint32_t) p[3]);
-#endif
-}
-
-/*
- * Copy data allowing for unaligned accesses in network byte order
- * (big endian).
- */
-INLINE void
-ldns_write_uint16(void *dst, uint16_t data)
-{
-#ifdef ALLOW_UNALIGNED_ACCESSES
-	* (uint16_t *) dst = htons(data);
-#else
-	uint8_t *p = (uint8_t *) dst;
-	p[0] = (uint8_t) ((data >> 8) & 0xff);
-	p[1] = (uint8_t) (data & 0xff);
-#endif
-}
-
-INLINE void
-ldns_write_uint32(void *dst, uint32_t data)
-{
-#ifdef ALLOW_UNALIGNED_ACCESSES
-	* (uint32_t *) dst = htonl(data);
-#else
-	uint8_t *p = (uint8_t *) dst;
-	p[0] = (uint8_t) ((data >> 24) & 0xff);
-	p[1] = (uint8_t) ((data >> 16) & 0xff);
-	p[2] = (uint8_t) ((data >> 8) & 0xff);
-	p[3] = (uint8_t) (data & 0xff);
-#endif
-}
-
-/* warning. */
-INLINE void
-ldns_write_uint64_as_uint48(void *dst, uint64_t data)
-{
-	uint8_t *p = (uint8_t *) dst;
-	p[0] = (uint8_t) ((data >> 40) & 0xff);
-	p[1] = (uint8_t) ((data >> 32) & 0xff);
-	p[2] = (uint8_t) ((data >> 24) & 0xff);
-	p[3] = (uint8_t) ((data >> 16) & 0xff);
-	p[4] = (uint8_t) ((data >> 8) & 0xff);
-	p[5] = (uint8_t) (data & 0xff);
-}
-
-
-/**
- * Structure to do a Schwartzian-like transformation, for instance when
- * sorting. If you need a transformation on the objects that are sorted,
- * you can sue this to store the transformed values, so you do not
- * need to do the transformation again for each comparison
- */
-struct ldns_schwartzian_compare_struct {
-	void *original_object;
-	void *transformed_object;
-};
-
-/** A general purpose lookup table
- *
- *  Lookup tables are arrays of (id, name) pairs,
- *  So you can for instance lookup the RCODE 3, which is "NXDOMAIN",
- *  and vice versa. The lookup tables themselves are defined wherever needed,
- *  for instance in \ref host2str.c
- */
-struct ldns_struct_lookup_table {
-        int id;
-        const char *name;
-};
-typedef struct ldns_struct_lookup_table ldns_lookup_table;
-
-/**
- * Looks up the table entry by name, returns NULL if not found.
- * \param[in] table the lookup table to search in
- * \param[in] name what to search for
- * \return the item found
- */
-ldns_lookup_table *ldns_lookup_by_name(ldns_lookup_table table[],
-                                       const char *name);
-
-/**
- * Looks up the table entry by id, returns NULL if not found.
- * \param[in] table the lookup table to search in
- * \param[in] id what to search for
- * \return the item found
- */
-ldns_lookup_table *ldns_lookup_by_id(ldns_lookup_table table[], int id);
-
-/**
- * Returns the value of the specified bit
- * The bits are counted from left to right, so bit #0 is the
- * left most bit.
- * \param[in] bits array holding the bits
- * \param[in] index to the wanted bit
- * \return
- */
-int ldns_get_bit(uint8_t bits[], size_t index);
-
-
-/**
- * Returns the value of the specified bit
- * The bits are counted from right to left, so bit #0 is the
- * right most bit.
- * \param[in] bits array holding the bits
- * \param[in] index to the wanted bit
- * \return 1 or 0 depending no the bit state
- */
-int ldns_get_bit_r(uint8_t bits[], size_t index);
-
-/**
- * sets the specified bit in the specified byte to
- * 1 if value is true, 0 if false
- * The bits are counted from right to left, so bit #0 is the
- * right most bit.
- * \param[in] byte the bit to set the bit in
- * \param[in] bit_nr the bit to set (0 <= n <= 7)
- * \param[in] value whether to set the bit to 1 or 0
- * \return 1 or 0 depending no the bit state
- */
-void ldns_set_bit(uint8_t *byte, int bit_nr, bool value);
-
-/**
- * Returns the value of a to the power of b
- * (or 1 of b < 1)
- */
-/*@unused@*/
-INLINE long
-ldns_power(long a, long b) {
-	long result = 1;
-	while (b > 0) {
-		if (b & 1) {
-			result *= a;
-			if (b == 1) {
-				return result;
-			}
-		}
-		a *= a;
-		b /= 2;
-	}
-	return result;
-}
-
-/**
- * Returns the int value of the given (hex) digit
- * \param[in] ch the hex char to convert
- * \return the converted decimal value
- */
-int ldns_hexdigit_to_int(char ch);
-
-/**
- * Returns the char (hex) representation of the given int
- * \param[in] ch the int to convert
- * \return the converted hex char
- */
-char ldns_int_to_hexdigit(int ch);
-
-/**
- * Converts a hex string to binary data
- *
- * \param[out] data The binary result is placed here.
- * At least strlen(str)/2 bytes should be allocated
- * \param[in] str The hex string to convert.
- * This string should not contain spaces
- * \return The number of bytes of converted data, or -1 if one of the arguments * is NULL, or -2 if the string length is not an even number
- */
-int
-ldns_hexstring_to_data(uint8_t *data, const char *str);
-
-/**
- * Show the internal library version
- * \return a string with the version in it
- */
-const char * ldns_version(void);
-
-/**
- * Convert TM to seconds since epoch (midnight, January 1st, 1970).
- * Like timegm(3), which is not always available.
- * \param[in] tm a struct tm* with the date
- * \return the seconds since epoch
- */
-time_t mktime_from_utc(const struct tm *tm);
-
-/**
- * Seed the random function.
- * If the file descriptor is specified, the random generator is seeded with
- * data from that file. If not, /dev/urandom is used.
- *
- * applications should call this if they need entropy data within ldns
- * If openSSL is available, it is automatically seeded from /dev/urandom
- * or /dev/random.
- *
- * If you need more entropy, or have no openssl available, this function
- * MUST be called at the start of the program
- *
- * If openssl *is* available, this function just adds more entropy
- *
- * \param[in] fd a file providing entropy data for the seed
- * \param[in] size the number of bytes to use as entropy data. If this is 0,
- *            only the minimal amount is taken (usually 4 bytes)
- * \return 0 if seeding succeeds, 1 if it fails
- */
-int ldns_init_random(FILE *fd, unsigned int size);
-
-
-/**
- * Encode data as BubbleBabble
- *
- * \param[in] data a pointer to data to be encoded
- * \param[in] len size the number of bytes of data
- * \return a string of BubbleBabble
- */
-char *ldns_bubblebabble(uint8_t *data, size_t len);
-
-#ifndef B32_NTOP
-int ldns_b32_ntop(uint8_t const *src, size_t srclength,
-	     char *target, size_t targsize);
-int b32_ntop(uint8_t const *src, size_t srclength,
-	     char *target, size_t targsize);
-int ldns_b32_ntop_extended_hex(uint8_t const *src, size_t srclength,
-	     char *target, size_t targsize);
-int b32_ntop_extended_hex(uint8_t const *src, size_t srclength,
-	     char *target, size_t targsize);
-/**
- * calculates the size needed to store the result of b32_ntop
- */
-/*@unused@*/
-static inline size_t ldns_b32_ntop_calculate_size(size_t srcsize)
-{
-	size_t result = ((((srcsize / 5) * 8) - 2) + 2);
-	return result;
-}
-#endif /* !B32_NTOP */
-#ifndef B32_PTON
-int ldns_b32_pton(char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize);
-int b32_pton(char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize);
-int ldns_b32_pton_extended_hex(char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize);
-int b32_pton_extended_hex(char const *src, size_t hashed_owner_str_len, uint8_t *target, size_t targsize);
-/**
- * calculates the size needed to store the result of b32_pton
- */
-/*@unused@*/
-static inline size_t ldns_b32_pton_calculate_size(size_t srcsize)
-{
-	size_t result = ((((srcsize) / 8) * 5));
-	return result;
-}
-#endif /* !B32_PTON */
-
-#endif /* !_UTIL_H */
diff --git a/src/mod/applications/mod_enum/mod_enum.2017.vcxproj b/src/mod/applications/mod_enum/mod_enum.2017.vcxproj
index a9d5e925f7..29ab2a2801 100644
--- a/src/mod/applications/mod_enum/mod_enum.2017.vcxproj
+++ b/src/mod/applications/mod_enum/mod_enum.2017.vcxproj
@@ -46,6 +46,7 @@
     <PlatformToolset>$(DefaultPlatformToolset)</PlatformToolset>
   </PropertyGroup>
   <Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
+  <Import Project="$(SolutionDir)\w32\ldns.props" Condition=" '$(ldnsVersionImported)' == '' " />
   <ImportGroup Label="ExtensionSettings">
   </ImportGroup>
   <ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'" Label="PropertySheets">
@@ -86,7 +87,6 @@
   </PropertyGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
     <ClCompile>
-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\ldns;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <EnablePREfast>false</EnablePREfast>
@@ -103,7 +103,6 @@
       <TargetEnvironment>X64</TargetEnvironment>
     </Midl>
     <ClCompile>
-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\ldns;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <EnablePREfast>false</EnablePREfast>
@@ -118,7 +117,6 @@
   </ItemDefinitionGroup>
   <ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release|Win32'">
     <ClCompile>
-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\ldns;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <EnablePREfast>false</EnablePREfast>
@@ -135,7 +133,6 @@
       <TargetEnvironment>X64</TargetEnvironment>
     </Midl>
     <ClCompile>
-      <AdditionalIncludeDirectories>%(RootDir)%(Directory)..\..\..\..\libs\ldns;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
       <PrecompiledHeader>
       </PrecompiledHeader>
       <EnablePREfast>false</EnablePREfast>
@@ -152,9 +149,6 @@
     <ClCompile Include="mod_enum.c" />
   </ItemGroup>
   <ItemGroup>
-    <ProjectReference Include="..\..\..\..\libs\win32\ldns\ldns-lib\ldns-lib.2017.vcxproj">
-      <Project>{23b4d303-79fc-49e0-89e2-2280e7e28940}</Project>
-    </ProjectReference>
     <ProjectReference Include="..\..\..\..\w32\Library\FreeSwitchCore.2017.vcxproj">
       <Project>{202d7a4e-760d-4d0e-afa1-d7459ced30ff}</Project>
       <ReferenceOutputAssembly>false</ReferenceOutputAssembly>
diff --git a/src/mod/applications/mod_enum/mod_enum.c b/src/mod/applications/mod_enum/mod_enum.c
index 3a6efbaa8d..08c0d709f7 100644
--- a/src/mod/applications/mod_enum/mod_enum.c
+++ b/src/mod/applications/mod_enum/mod_enum.c
@@ -31,9 +31,6 @@
  */

 #include <switch.h>
-#ifdef _MSC_VER
-#define ssize_t int
-#endif
 #include <ldns/ldns.h>

 #define ENUM_MAXNAMESERVERS	10	/* max nameservers that will be used */
diff --git a/w32/download_LDNS.props b/w32/download_LDNS.props
deleted file mode 100644
index 0036e1f278..0000000000
--- a/w32/download_LDNS.props
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ImportGroup Label="PropertySheets">
-    <Import Project="downloadpackage.task" Condition=" '$(downloadpackagetask_Imported)' == '' " />
-  </ImportGroup>
-  <PropertyGroup>
-    <downloadLDNSPropsImported>true</downloadLDNSPropsImported>
-  </PropertyGroup>
-
-  <!--
-       Download Target.
-       Name must be unique.
-       By design, targets are executed only once per project.
-
-       Usage:
-
-       package: URI
-
-       expectfileordirectory: Skips the download and extraction if exists
-
-       outputfolder: Folder to store a downloaded file.
-                     By default "$(BaseDir)libs", if empty
-
-       outputfilename: If not empty, overrides filename from URI.
-                       .exe files don't get extracted
-
-       extractto: Folder to extract an archive to
-   -->
-
-  <Target Name="LDNSDownloadTarget" BeforeTargets="CustomBuild;PreBuildEvent;" DependsOnTargets="7za">
-      <DownloadPackageTask
-           package="http://files.freeswitch.org/downloads/libs/ldns-1.6.9-2-win.tar.gz"
-           expectfileordirectory="$(BaseDir)libs\ldns\configure.ac"
-           outputfolder=""
-           outputfilename=""
-           extractto="$(BaseDir)libs\"
-      />
-  </Target>
-
-</Project>
diff --git a/w32/download_celt.props b/w32/download_celt.props
deleted file mode 100644
index b6ae91ca22..0000000000
--- a/w32/download_celt.props
+++ /dev/null
@@ -1,40 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
-  <ImportGroup Label="PropertySheets">
-    <Import Project="downloadpackage.task" Condition=" '$(downloadpackagetask_Imported)' == '' " />
-  </ImportGroup>
-  <PropertyGroup>
-    <downloadceltPropsImported>true</downloadceltPropsImported>
-  </PropertyGroup>
-
-  <!--
-       Download Target.
-       Name must be unique.
-       By design, targets are executed only once per project.
-
-       Usage:
-
-       package: URI
-
-       expectfileordirectory: Skips the download and extraction if exists
-
-       outputfolder: Folder to store a downloaded file.
-                     By default "$(BaseDir)libs", if empty
-
-       outputfilename: If not empty, overrides filename from URI.
-                       .exe files don't get extracted
-
-       extractto: Folder to extract an archive to
-   -->
-
-  <Target Name="celtDownloadTarget" BeforeTargets="CustomBuild;PreBuildEvent;" DependsOnTargets="7za">
-      <DownloadPackageTask
-           package="http://files.freeswitch.org/downloads/libs/celt-0.10.0.tar.gz"
-           expectfileordirectory="$(BaseDir)libs\celt-0.10.0\Makefile.am"
-           outputfolder=""
-           outputfilename=""
-           extractto="$(BaseDir)libs\"
-      />
-  </Target>
-
-</Project>
diff --git a/w32/ldns-version.props b/w32/ldns-version.props
new file mode 100644
index 0000000000..a52adf8006
--- /dev/null
+++ b/w32/ldns-version.props
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets" />
+  <PropertyGroup Label="UserMacros">
+    <ldnsVersion>1.9.2</ldnsVersion>
+    <ldnsBuildNumber>1</ldnsBuildNumber>
+  </PropertyGroup>
+  <PropertyGroup>
+    <ldnsVersionImported>true</ldnsVersionImported>
+  </PropertyGroup>
+  <PropertyGroup />
+  <ItemDefinitionGroup />
+  <ItemGroup>
+    <BuildMacro Include="ldnsVersion">
+      <Value>$(ldnsVersion)</Value>
+    </BuildMacro>
+    <BuildMacro Include="ldnsBuildNumber">
+      <Value>$(ldnsBuildNumber)</Value>
+    </BuildMacro>
+  </ItemGroup>
+</Project>
diff --git a/w32/ldns.props b/w32/ldns.props
new file mode 100644
index 0000000000..c4375740ec
--- /dev/null
+++ b/w32/ldns.props
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <ImportGroup Label="PropertySheets">
+    <Import Project="ldns-version.props" Condition=" '$(ldnsVersionImported)' == '' "/>
+    <Import Project="downloadpackage.task" Condition=" '$(downloadpackagetask_Imported)' == '' " />
+  </ImportGroup>
+  <PropertyGroup Label="UserMacros">
+    <ldnsLibDir>$(BaseDir)libs\ldns-$(ldnsVersion)_$(ldnsBuildNumber)</ldnsLibDir>
+  </PropertyGroup>
+
+  <!--
+       Download Target.
+       Name must be unique.
+       By design, targets are executed only once per project.
+
+       Usage:
+
+       package: URI
+
+       expectfileordirectory: Skips the download and extraction if exists
+
+       outputfolder: Folder to store a downloaded file.
+                     By default "$(BaseDir)libs", if empty
+
+       outputfilename: If not empty, overrides filename from URI.
+                       .exe files don't get extracted
+
+       extractto: Folder to extract an archive to
+   -->
+
+  <Target Name="ldnsBinariesDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">
+      <DownloadPackageTask
+           package="https://github.com/freeswitch/windows-deps/releases/download/ldns-v$(ldnsVersion)_$(ldnsBuildNumber)/ldns-$(ldnsVersion)_$(ldnsBuildNumber)-binaries-$(Platform.ToLower())-$(Configuration.ToLower()).zip"
+           expectfileordirectory="$(ldnsLibDir)\binaries\$(Platform)\$(Configuration)\ldns.lib"
+           outputfolder=""
+           outputfilename=""
+           extractto="$(BaseDir)libs\"
+      />
+  </Target>
+  <Target Name="ldnsHeadersDownloadTarget" BeforeTargets="CustomBuild" DependsOnTargets="7za">
+      <DownloadPackageTask
+           package="https://github.com/freeswitch/windows-deps/releases/download/ldns-v$(ldnsVersion)_$(ldnsBuildNumber)/ldns-$(ldnsVersion)_$(ldnsBuildNumber)-headers.zip"
+           expectfileordirectory="$(ldnsLibDir)\include\ldns\ldns.h"
+           outputfolder=""
+           outputfilename=""
+           extractto="$(BaseDir)libs\"
+      />
+  </Target>
+
+  <ItemDefinitionGroup>
+    <ClCompile>
+      <AdditionalIncludeDirectories>$(ldnsLibDir)\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
+    </ClCompile>
+    <Link>
+      <AdditionalLibraryDirectories>$(ldnsLibDir)\binaries\$(Platform)\$(Configuration);%(AdditionalLibraryDirectories)</AdditionalLibraryDirectories>
+      <AdditionalDependencies>ldns.lib;ws2_32.lib;%(AdditionalDependencies)</AdditionalDependencies>
+    </Link>
+  </ItemDefinitionGroup>
+</Project>