diff --git a/MSVC/ring-daemon.vcxproj b/MSVC/ring-daemon.vcxproj
index d913f2c89..a5d3abc5f 100644
--- a/MSVC/ring-daemon.vcxproj
+++ b/MSVC/ring-daemon.vcxproj
@@ -659,8 +659,8 @@
true
- $(ProjectDir);$(ProjectDir)..\;$(ProjectDir)..\src;$(ProjectDir)..\src\client;$(ProjectDir)..\src\config;$(ProjectDir)..\src\dring;$(ProjectDir)..\src\hooks;$(ProjectDir)..\src\im;$(ProjectDir)..\src\media;$(ProjectDir)..\src\jamidht;$(ProjectDir)..\src\security;$(ProjectDir)..\src\sip;$(ProjectDir)..\src\upnp;$(ProjectDir)..\src\upnp\igd;$(ProjectDir)..\src\upnp\protocol;$(ProjectDir)..\src\upnp\mapping;$(ProjectDir)..\src\jamidht\eth;$(ProjectDir)..\contrib\msvc;$(ProjectDir)..\contrib\msvc\include;$(ProjectDir)..\contrib\msvc\include\upnp;$(ProjectDir)..\contrib\build\msgpack-c\include;$(ProjectDir)..\contrib\build\jsoncpp\include;$(ProjectDir)..\contrib\build\yaml-cpp\include;$(ProjectDir)..\contrib\build\pjproject\pjlib\include;$(ProjectDir)..\contrib\build\pjproject\pjnath\include;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\include;$(ProjectDir)..\contrib\build\pjproject\pjsip\include;$(ProjectDir)..\contrib\build\pjproject\third_party;$(ProjectDir)..\contrib\build\pjproject\pjmedia\include;$(ProjectDir)..\contrib\build\restbed\source;$(ProjectDir)..\contrib\build\ffmpeg\Build\win32\x64\include;$(ProjectDir)..\contrib\build\sndfile\src;%(AdditionalIncludeDirectories)
- STATIC_GETOPT;_USE_MATH_DEFINES;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NOMINMAX;HAVE_CONFIG_H;WIN32_LEAN_AND_MEAN;_MBCS;OPENDHT_PROXY_CLIENT;OPENDHT_PROXY_SERVER;OPENDHT_PUSH_NOTIFICATIONS;%(PreprocessorDefinitions)
+ $(ProjectDir);$(ProjectDir)..\;$(ProjectDir)..\src;$(ProjectDir)..\src\client;$(ProjectDir)..\src\config;$(ProjectDir)..\src\dring;$(ProjectDir)..\src\hooks;$(ProjectDir)..\src\im;$(ProjectDir)..\src\media;$(ProjectDir)..\src\jamidht;$(ProjectDir)..\src\security;$(ProjectDir)..\src\sip;$(ProjectDir)..\src\upnp;$(ProjectDir)..\src\upnp\igd;$(ProjectDir)..\src\upnp\protocol;$(ProjectDir)..\src\upnp\mapping;$(ProjectDir)..\src\jamidht\eth;$(ProjectDir)..\contrib\msvc;$(ProjectDir)..\contrib\msvc\include;$(ProjectDir)..\contrib\msvc\include\upnp;$(ProjectDir)..\contrib\build\msgpack-c\include;$(ProjectDir)..\contrib\build\jsoncpp\include;$(ProjectDir)..\contrib\build\yaml-cpp\include;$(ProjectDir)..\contrib\build\pjproject\pjlib\include;$(ProjectDir)..\contrib\build\pjproject\pjnath\include;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\include;$(ProjectDir)..\contrib\build\pjproject\pjsip\include;$(ProjectDir)..\contrib\build\pjproject\third_party;$(ProjectDir)..\contrib\build\pjproject\pjmedia\include;$(ProjectDir)..\contrib\build\ffmpeg\Build\win32\x64\include;$(ProjectDir)..\contrib\build\sndfile\src;$(ProjectDir)..\contrib\build\openssl\inc32;$(ProjectDir)..\contrib\build\asio\asio\include;$(ProjectDir)..\contrib\build\restinio\dev;$(ProjectDir)..\contrib\build\fmt\include;$(ProjectDir)..\contrib\build\http_parser;%(AdditionalIncludeDirectories)
+ _WIN32_WINNT=0x0A00;ASIO_STANDALONE;STATIC_GETOPT;_USE_MATH_DEFINES;_SCL_SECURE_NO_WARNINGS;_CRT_SECURE_NO_WARNINGS;NOMINMAX;HAVE_CONFIG_H;WIN32_LEAN_AND_MEAN;OPENDHT_PROXY_CLIENT;OPENDHT_PROXY_SERVER;OPENDHT_PUSH_NOTIFICATIONS;%(PreprocessorDefinitions)
4996;4503;4180;4244;4267;
true
Default
@@ -688,8 +688,8 @@
- ws2_32.lib;advapi32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;libgnutls.lib;lib_json.lib;libopendht.lib;Argon2Ref.lib;secp256k1.lib;libyaml-cppmd.lib;portaudio.lib;libupnp.lib;pjsip-core-x86_64-x64-vc15-Release.lib;pjsip-simple-x86_64-x64-vc15-Release.lib;pjsua2-lib-x86_64-x64-vc15-Release.lib;pjsua-lib-x86_64-x64-vc15-Release.lib;pjsip-ua-x86_64-x64-vc15-Release.lib;pjmedia-x86_64-x64-vc15-Release.lib;pjlib-util-x86_64-x64-vc15-Release.lib;pjlib-x86_64-x64-vc15-Release.lib;pjnath-x86_64-x64-vc15-Release.lib;restbed.lib;libeay32.lib;ssleay32.lib;%(AdditionalDependencies)
- $(ProjectDir)..\contrib\build\ffmpeg\Build\win32\x64\bin;$(ProjectDir)..\contrib\msvc\lib\x64;$(ProjectDir)..\contrib\build\boost\stage\lib;$(ProjectDir)..\contrib\build\pjproject\pjsip\lib;$(ProjectDir)..\contrib\build\pjproject\pjmedia\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\lib;$(ProjectDir)..\contrib\build\pjproject\third_party\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib\lib;$(ProjectDir)..\contrib\build\pjproject\pjnath\lib;$(ProjectDir)..\contrib\build\restbed\build\Release;$(ProjectDir)..\contrib\build\restbed\dependency\openssl\out32dll;$(ProjectDir)..\contrib\build\argon2\vs2015\Argon2Ref\vs2015\build;$(ProjectDir)..\contrib\build\yaml-cpp\msvc\Release;$(ProjectDir)..\contrib\build\sndfile\msvc\x64\Release
+ ws2_32.lib;advapi32.lib;avcodec.lib;avdevice.lib;avfilter.lib;avformat.lib;avutil.lib;swresample.lib;swscale.lib;libgnutls.lib;lib_json.lib;libopendht.lib;Argon2Ref.lib;secp256k1.lib;libyaml-cppmd.lib;portaudio.lib;libupnp.lib;pjsip-core-x86_64-x64-vc15-Release.lib;pjsip-simple-x86_64-x64-vc15-Release.lib;pjsua2-lib-x86_64-x64-vc15-Release.lib;pjsua-lib-x86_64-x64-vc15-Release.lib;pjsip-ua-x86_64-x64-vc15-Release.lib;pjmedia-x86_64-x64-vc15-Release.lib;pjlib-util-x86_64-x64-vc15-Release.lib;pjlib-x86_64-x64-vc15-Release.lib;pjnath-x86_64-x64-vc15-Release.lib;fmt.lib;http-parser.lib;asio.lib;libeay32.lib;ssleay32.lib;%(AdditionalDependencies)
+ $(ProjectDir)..\contrib\build\ffmpeg\Build\win32\x64\bin;$(ProjectDir)..\contrib\msvc\lib\x64;$(ProjectDir)..\contrib\build\boost\stage\lib;$(ProjectDir)..\contrib\build\pjproject\pjsip\lib;$(ProjectDir)..\contrib\build\pjproject\pjmedia\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib-util\lib;$(ProjectDir)..\contrib\build\pjproject\third_party\lib;$(ProjectDir)..\contrib\build\pjproject\pjlib\lib;$(ProjectDir)..\contrib\build\pjproject\pjnath\lib;$(ProjectDir)..\contrib\build\openssl\out32dll;$(ProjectDir)..\contrib\build\argon2\vs2015\Argon2Ref\vs2015\build;$(ProjectDir)..\contrib\build\yaml-cpp\msvc\Release;$(ProjectDir)..\contrib\build\sndfile\msvc\x64\Release;$(ProjectDir)..\contrib\build\asio\asio\msvc\x64\Release;$(ProjectDir)..\contrib\build\fmt\msvc\Release;$(ProjectDir)..\contrib\build\http_parser\x64\Release
/ignore:4006 /ignore:4221 %(AdditionalOptions)
true
diff --git a/contrib/build_all.bat b/contrib/build_all.bat
index d38abe582..c00d41161 100644
--- a/contrib/build_all.bat
+++ b/contrib/build_all.bat
@@ -56,7 +56,10 @@ x264=build\x264\SMP\libx264.vcxproj, ^
opus=build\opus\SMP\libopus.vcxproj, ^
media-sdk=build\media-sdk\api\mfx_dispatch\windows\libmfx_vs2015.vcxproj, ^
ffmpeg=ffmpeg, ^
-restbed=restbed, ^
+openssl=openssl, ^
+asio=build\asio\asio\msvc\asio.vcxproj, ^
+fmt=build\fmt\msvc\fmt.vcxproj, ^
+http_parser=build\http_parser\http-parser.vcxproj, ^
jsoncpp=build\jsoncpp\makefiles\vs2017\lib_json.vcxproj, ^
argon2=build\argon2\vs2015\Argon2Ref\Argon2Ref.vcxproj, ^
gmp=build\gmp\SMP\libgmp.vcxproj, ^
@@ -83,12 +86,15 @@ x264=build\x264\SMP\libx264.vcxproj, ^
opus=build\opus\SMP\libopus.vcxproj, ^
media-sdk=build\media-sdk\api\mfx_dispatch\windows\libmfx_vs2015.vcxproj, ^
ffmpeg=ffmpeg, ^
-restbed=restbed, ^
+openssl=openssl, ^
+asio=build\asio\asio\msvc\asio.vcxproj, ^
+fmt=build\fmt\msvc\fmt.vcxproj, ^
+http_parser=build\http_parser\http-parser.vcxproj, ^
jsoncpp=build\jsoncpp\makefiles\vs2017\lib_json.vcxproj, ^
argon2=build\argon2\vs2015\Argon2Ref\Argon2Ref.vcxproj, ^
-gmp=build\gmp\SMP\libgmp.vcxproj, ^
iconv=build\iconv\SMP\libiconv.vcxproj, ^
zlib=build\zlib\SMP\libzlib.vcxproj, ^
+gmp=build\gmp\SMP\libgmp.vcxproj, ^
nettle=build\nettle\SMP\libnettle.vcxproj, ^
hogweed=build\nettle\SMP\libhogweed.vcxproj, ^
gnutls=build\gnutls\SMP\libgnutls.vcxproj, ^
@@ -231,10 +237,10 @@ if %ERRORLEVEL% geq 1 (
:build
if /I %1 equ ffmpeg (
%MSYS2_BIN% --login -x %CONTRIB_DIR%src/ffmpeg/windows-configure-make.sh %2 %3
-) else if /I %1 equ restbed (
- goto build_restbed %2 %3
) else if /I %1 equ pjproject (
goto build_pjproject %2 %3
+) else if /I %1 equ openssl (
+ goto build_openssl %2 %3
) else (
msbuild %CONTRIB_DIR%%1 %MSBUILD_ARGS%
)
@@ -243,9 +249,9 @@ if %ERRORLEVEL% geq 1 (
)
goto :eof
-:build_restbed
+:build_openssl
:: build openssl
-cd %CONTRIB_DIR%build\restbed\dependency\openssl
+cd %CONTRIB_DIR%build\openssl
if "%2"=="win32" (
call perl Configure VC-WIN64A
call ms\do_win64a
@@ -256,20 +262,6 @@ if "%2"=="win32" (
)
call nmake -f ms\ntdll.mak
set PATH=restbed\dependency\openssl\out32dll;%PATH%
-:: build restbed w/asio+catch
-cd ..\..
-mkdir build
-cd build
-setlocal
-set PATH=C:\\Program Files\\CMake\\bin\\;%PATH%
-set CMAKE_FLAGS=-DBUILD_SSL=ON -DBUILD_TESTS=OFF
-if "%3"=="x86" (
- cmake %CMAKE_FLAGS% -G "Visual Studio 15 2017 Win32" ..
-) else if "%3"=="x64" (
- cmake %CMAKE_FLAGS% -G "Visual Studio 15 2017 Win64" ..
-)
-cmake --build . --target ALL_BUILD --config Release
-cd ..\..
goto :eof
:build_pjproject
diff --git a/contrib/src/asio/asio-uwp.patch b/contrib/src/asio/asio-uwp.patch
new file mode 100644
index 000000000..7bd416b78
--- /dev/null
+++ b/contrib/src/asio/asio-uwp.patch
@@ -0,0 +1,68 @@
+--- a/asio/include/asio/detail/impl/win_iocp_io_context.ipp
++++ b/asio/include/asio/detail/impl/win_iocp_io_context.ipp
+@@ -93,7 +93,7 @@ void win_iocp_io_context::shutdown()
+ {
+ LARGE_INTEGER timeout;
+ timeout.QuadPart = 1;
+- ::SetWaitableTimer(waitable_timer_.handle, &timeout, 1, 0, 0, FALSE);
++ //::SetWaitableTimer(waitable_timer_.handle, &timeout, 1, 0, 0, FALSE);
+ }
+
+ while (::InterlockedExchangeAdd(&outstanding_work_, 0) > 0)
+@@ -477,11 +477,11 @@ DWORD win_iocp_io_context::get_gqcs_timeout()
+ osvi.dwOSVersionInfoSize = sizeof(osvi);
+ osvi.dwMajorVersion = 6ul;
+
+- const uint64_t condition_mask = ::VerSetConditionMask(
++ /*const uint64_t condition_mask = ::VerSetConditionMask(
+ 0, VER_MAJORVERSION, VER_GREATER_EQUAL);
+
+ if (!!::VerifyVersionInfo(&osvi, VER_MAJORVERSION, condition_mask))
+- return INFINITE;
++ return INFINITE;*/
+
+ return default_gqcs_timeout;
+ }
+@@ -492,7 +492,7 @@ void win_iocp_io_context::do_add_timer_queue(timer_queue_base& queue)
+
+ timer_queues_.insert(&queue);
+
+- if (!waitable_timer_.handle)
++ /*if (!waitable_timer_.handle)
+ {
+ waitable_timer_.handle = ::CreateWaitableTimer(0, FALSE, 0);
+ if (waitable_timer_.handle == 0)
+@@ -508,7 +508,7 @@ void win_iocp_io_context::do_add_timer_queue(timer_queue_base& queue)
+ timeout.QuadPart *= 10;
+ ::SetWaitableTimer(waitable_timer_.handle,
+ &timeout, max_timeout_msec, 0, 0, FALSE);
+- }
++ }*/
+
+ if (!timer_thread_.get())
+ {
+@@ -537,8 +537,8 @@ void win_iocp_io_context::update_timeout()
+ LARGE_INTEGER timeout;
+ timeout.QuadPart = -timeout_usec;
+ timeout.QuadPart *= 10;
+- ::SetWaitableTimer(waitable_timer_.handle,
+- &timeout, max_timeout_msec, 0, 0, FALSE);
++ //::SetWaitableTimer(waitable_timer_.handle,
++ //&timeout, max_timeout_msec, 0, 0, FALSE);
+ }
+ }
+ }
+--- a/asio/include/asio/detail/impl/win_thread.ipp
++++ b/asio/include/asio/detail/impl/win_thread.ipp
+@@ -46,7 +46,7 @@ void win_thread::join()
+ ::CloseHandle(exit_event_);
+ if (terminate_threads())
+ {
+- ::TerminateThread(thread_, 0);
++ //::TerminateThread(thread_, 0);
+ }
+ else
+ {
+--
+2.8.1.windows.1
+
diff --git a/contrib/src/asio/asio-vcxproj.patch b/contrib/src/asio/asio-vcxproj.patch
new file mode 100644
index 000000000..66fff580d
--- /dev/null
+++ b/contrib/src/asio/asio-vcxproj.patch
@@ -0,0 +1,574 @@
+--- /dev/null
++++ b/asio/msvc/asio.vcxproj
+@@ -0,0 +1,567 @@
++
++
++
++
++ Debug
++ Win32
++
++
++ Release
++ Win32
++
++
++ Debug
++ x64
++
++
++ Release
++ x64
++
++
++
++ 15.0
++ {08A80A1E-58CD-43F6-86B2-DAD475D573D0}
++ asio
++ $(LatestTargetPlatformVersion)
++
++
++
++ StaticLibrary
++ true
++ v141
++ Unicode
++
++
++ StaticLibrary
++ false
++ v141
++ true
++ Unicode
++
++
++ StaticLibrary
++ true
++ v141
++ Unicode
++
++
++ StaticLibrary
++ false
++ v141
++ true
++ Unicode
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++ Level3
++ Disabled
++ true
++ true
++ $(ProjectDir)..\include;$(ProjectDir)..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)
++ _WIN32_WINNT=0x0A00;ASIO_STANDALONE;ASIO_SEPARATE_COMPILATION;UNICODE;%(PreprocessorDefinitions)
++
++
++ $(ProjectDir)..\..\..\openssl\out32dll;
++
++
++ libeay32.lib;ssleay32.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)
++
++
++
++
++ Level3
++ Disabled
++ true
++ true
++ $(ProjectDir)..\include;$(ProjectDir)..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)
++ _WIN32_WINNT=0x0A00;ASIO_STANDALONE;ASIO_SEPARATE_COMPILATION;UNICODE;%(PreprocessorDefinitions)
++
++
++ $(ProjectDir)..\..\..\openssl\out32dll;
++
++
++ libeay32.lib;ssleay32.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)
++
++
++
++
++ Level3
++ MaxSpeed
++ true
++ true
++ true
++ true
++ $(ProjectDir)..\include;$(ProjectDir)..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)
++ _WIN32_WINNT=0x0A00;ASIO_STANDALONE;ASIO_SEPARATE_COMPILATION;UNICODE;%(PreprocessorDefinitions)
++
++
++ true
++ true
++ $(ProjectDir)..\..\..\openssl\out32dll;
++ libeay32.lib;ssleay32.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)
++
++
++
++
++ Level3
++ MaxSpeed
++ true
++ true
++ true
++ true
++ $(ProjectDir)..\include;$(ProjectDir)..\..\..\openssl\inc32;%(AdditionalIncludeDirectories)
++ _WIN32_WINNT=0x0A00;ASIO_STANDALONE;ASIO_SEPARATE_COMPILATION;UNICODE;%(PreprocessorDefinitions)
++
++
++ true
++ true
++ $(ProjectDir)..\..\..\openssl\out32dll;
++ libeay32.lib;ssleay32.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)
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
+\ No newline at end of file
+--
+2.19.0.windows.1
+
diff --git a/contrib/src/asio/fetch_and_patch.bat b/contrib/src/asio/fetch_and_patch.bat
new file mode 100644
index 000000000..8f7616102
--- /dev/null
+++ b/contrib/src/asio/fetch_and_patch.bat
@@ -0,0 +1,22 @@
+set BUILD=%SRC%..\build
+
+set ASIO_VERSION=asio-1-12-2
+set ASIO_URL=https://github.com/chriskohlhoff/asio/archive/%ASIO_VERSION%.tar.gz
+
+mkdir %BUILD%
+
+%WGET_CMD% %ASIO_URL%
+
+7z -y x %ASIO_VERSION%.tar.gz && 7z -y x %ASIO_VERSION%.tar -o%BUILD%
+del %ASIO_VERSION%.tar && del %ASIO_VERSION%.tar.gz && del %BUILD%\pax_global_header
+rename %BUILD%\asio-%ASIO_VERSION% asio
+
+cd %BUILD%\asio
+
+%APPLY_CMD% %SRC%asio\asio-vcxproj.patch
+
+if "%1"=="uwp" (
+ %APPLY_CMD% %SRC%asio\asio-uwp.patch
+)
+
+cd %SRC%
\ No newline at end of file
diff --git a/contrib/src/fetch_all.bat b/contrib/src/fetch_all.bat
index 083e77d9d..84f9a4208 100644
--- a/contrib/src/fetch_all.bat
+++ b/contrib/src/fetch_all.bat
@@ -26,6 +26,9 @@ ffnvcodec, ^
ffmpeg, ^
argon2, ^
zlib ^
+fmt, ^
+http_parser, ^
+restinio, ^
gmp, ^
iconv, ^
jsoncpp, ^
@@ -37,7 +40,6 @@ opus, ^
pjproject, ^
portaudio, ^
pthreads, ^
-restbed, ^
secp256k1, ^
upnp, ^
x264, ^
@@ -50,8 +52,12 @@ set DEPENDENCIES=( ^
media-sdk, ^
ffnvcodec, ^
ffmpeg, ^
+asio, ^
argon2, ^
zlib ^
+fmt, ^
+http_parser, ^
+restinio, ^
gmp, ^
iconv, ^
jsoncpp, ^
@@ -59,11 +65,11 @@ msgpack, ^
nettle, ^
gnutls, ^
opendht, ^
+openssl, ^
opus, ^
pjproject, ^
portaudio, ^
pthreads, ^
-restbed, ^
secp256k1, ^
upnp, ^
vpx, ^
diff --git a/contrib/src/fmt/fetch_and_patch.bat b/contrib/src/fmt/fetch_and_patch.bat
index 3b515fa0d..18103d147 100644
--- a/contrib/src/fmt/fetch_and_patch.bat
+++ b/contrib/src/fmt/fetch_and_patch.bat
@@ -17,4 +17,10 @@ rename %BUILD%\fmt-%FMT_VERSION% fmt
cd %BUILD%\fmt
+mkdir msvc && cd msvc
+setlocal
+set PATH=C:\\Program Files\\CMake\\bin\\;%PATH%
+cmake .. -G "Visual Studio 15 2017 Win64" -DBUILD_SHARED_LIBS=Off -DFMT_USE_USER_DEFINED_LITERALS=0
+endlocal
+
cd %SRC%
diff --git a/contrib/src/http_parser/fetch_and_patch.bat b/contrib/src/http_parser/fetch_and_patch.bat
index 430e4915c..328c66d23 100644
--- a/contrib/src/http_parser/fetch_and_patch.bat
+++ b/contrib/src/http_parser/fetch_and_patch.bat
@@ -11,10 +11,12 @@ if %USE_CACHE%==1 (
%WGET_CMD% %HTTP_PARSER_URL%
)
-7z -y x %HTTP_PARSER_VERSION%.tar.gz && 7z -y x %HTTP_PARSER_VERSION%.tar -o%BUILD%
-del %HTTP_PARSER_VERSION%.tar && del %HTTP_PARSER_VERSION%.tar.gz && del %BUILD%\pax_global_header
+7z -y x v%HTTP_PARSER_VERSION%.tar.gz && 7z -y x v%HTTP_PARSER_VERSION%.tar -o%BUILD%
+del v%HTTP_PARSER_VERSION%.tar && del v%HTTP_PARSER_VERSION%.tar.gz && del %BUILD%\pax_global_header
rename %BUILD%\http_parser-%HTTP_PARSER_VERSION% http_parser
cd %BUILD%\http_parser
+%APPLY_CMD% %SRC%http_parser\http_parser-vs.patch
+
cd %SRC%
diff --git a/contrib/src/http_parser/http_parser-vs.patch b/contrib/src/http_parser/http_parser-vs.patch
new file mode 100644
index 000000000..dd6f3fb69
--- /dev/null
+++ b/contrib/src/http_parser/http_parser-vs.patch
@@ -0,0 +1,134 @@
+--- /dev/null
++++ b/http-parser.vcxproj
+@@ -0,0 +1,127 @@
++
++
++
++
++ Debug
++ Win32
++
++
++ Release
++ Win32
++
++
++ Debug
++ x64
++
++
++ Release
++ x64
++
++
++
++ 15.0
++ {4B7A0E04-2DEE-4BBE-8963-93B6F081C10A}
++ httpparser
++ $(LatestTargetPlatformVersion)
++
++
++
++ Application
++ true
++ v141
++ MultiByte
++
++
++ Application
++ false
++ v141
++ true
++ MultiByte
++
++
++ Application
++ true
++ v141
++ MultiByte
++
++
++ StaticLibrary
++ false
++ v141
++ true
++ MultiByte
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++
++ Level3
++ Disabled
++ true
++ true
++
++
++
++
++ Level3
++ Disabled
++ true
++ true
++
++
++
++
++ Level3
++ MaxSpeed
++ true
++ true
++ true
++ true
++
++
++ true
++ true
++
++
++
++
++ Level3
++ MaxSpeed
++ true
++ true
++ true
++ true
++ $(ProjectDir)..\;$(ProjectDir)
++ _CRT_SECURE_NO_WARNINGS;_MBCS;%(PreprocessorDefinitions)
++
++
++ true
++ true
++
++
++
++
++
++
++
++
++
++
++
+\ No newline at end of file
+--
+2.19.0.windows.1
+
diff --git a/contrib/src/opendht/fetch_and_patch.bat b/contrib/src/opendht/fetch_and_patch.bat
index 6fa48ec46..3bbdc068a 100644
--- a/contrib/src/opendht/fetch_and_patch.bat
+++ b/contrib/src/opendht/fetch_and_patch.bat
@@ -1,6 +1,6 @@
set BUILD=%SRC%..\build
-set OPENDHT_VERSION=1.10.1
+set OPENDHT_VERSION=6a760a629cb7493e6c1e685cb9ceecf10268f338
set OPENDHT_URL=https://github.com/savoirfairelinux/opendht/archive/%OPENDHT_VERSION%.tar.gz
mkdir %BUILD%
diff --git a/contrib/src/openssl/fetch_and_patch.bat b/contrib/src/openssl/fetch_and_patch.bat
new file mode 100644
index 000000000..f986ac8a4
--- /dev/null
+++ b/contrib/src/openssl/fetch_and_patch.bat
@@ -0,0 +1,20 @@
+set BUILD=%SRC%..\build
+
+set OPENSSL_VERSION=5cc1e25bc76bcf0db03bc37bd64b3290727963b6
+set OPENSSL_URL=https://github.com/Microsoft/openssl/archive/%OPENSSL_VERSION%.tar.gz
+
+mkdir %BUILD%
+
+%WGET_CMD% %OPENSSL_URL%
+
+7z -y x %OPENSSL_VERSION%.tar.gz && 7z -y x %OPENSSL_VERSION%.tar -o%BUILD%
+del %OPENSSL_VERSION%.tar && del %OPENSSL_VERSION%.tar.gz && del %BUILD%\pax_global_header
+rename %BUILD%\openssl-%OPENSSL_VERSION% openssl
+
+cd %BUILD%\openssl
+
+if "%1"=="uwp" (
+ %APPLY_CMD% %SRC%\openssl-uwp.patch
+)
+
+cd %SRC%
\ No newline at end of file
diff --git a/contrib/src/openssl/openssl-uwp.patch b/contrib/src/openssl/openssl-uwp.patch
new file mode 100644
index 000000000..1b33d2d54
--- /dev/null
+++ b/contrib/src/openssl/openssl-uwp.patch
@@ -0,0 +1,30 @@
+--- a/ms/setVSvars.bat
++++ b/ms/setVSvars.bat
+@@ -166,7 +166,7 @@ exit /b
+
+ :set_VS15VC
+ if not "%_VS15VC%"=="" goto :eof
+- for /f "usebackq tokens=1* delims=: " %%i in (`%~dp0\vswhere -latest -requires Microsoft.VisualStudio.Workload.Universal -requires Microsoft.VisualStudio.ComponentGroup.UWP.VC`) do (
++ for /f "usebackq tokens=1* delims=: " %%i in (`%~dp0\vswhere -latest -requires Microsoft.VisualStudio.Workload.Universal`) do (
+ if /i "%%i"=="installationPath" set _VS15VC=%%j\VC\Auxiliary\Build
+ )
+ if not "%_VS15VC%"=="" goto :eof
+--- a/ms/winrt.cpp
++++ b/ms/winrt.cpp
+@@ -291,13 +291,6 @@ extern "C"
+ {
+ return 0;
+ }
+-
+- BOOL WINAPI FlushConsoleInputBuffer(
+- _In_ HANDLE hConsoleInput
+- )
+- {
+- return 0;
+- }
+ BOOL DeleteDC(
+ _In_ HDC hdc
+ )
+--
+2.10.2.windows.1
+
diff --git a/contrib/src/restinio/fetch_and_patch.bat b/contrib/src/restinio/fetch_and_patch.bat
index 60a8348c1..35109f256 100644
--- a/contrib/src/restinio/fetch_and_patch.bat
+++ b/contrib/src/restinio/fetch_and_patch.bat
@@ -1,7 +1,7 @@
set BUILD=%SRC%..\build
-RESTINIO_VERSION=v.0.5.1
-RESTINIO_URL=https://github.com/Stiffstream/restinio/archive/%RESTINIO_VERSION%.tar.gz
+set RESTINIO_VERSION=v.0.5.1.2
+set RESTINIO_URL=https://github.com/Stiffstream/restinio/archive/%RESTINIO_VERSION%.tar.gz
mkdir %BUILD%