diff --git a/ext/bin/miniupnpc/windows-x64/miniupnpc.lib b/ext/bin/miniupnpc/windows-x64/miniupnpc.lib new file mode 100644 index 000000000..e05fefc88 Binary files /dev/null and b/ext/bin/miniupnpc/windows-x64/miniupnpc.lib differ diff --git a/ext/bin/miniupnpc/windows-x86/miniupnpc.lib b/ext/bin/miniupnpc/windows-x86/miniupnpc.lib new file mode 100644 index 000000000..a7fe41918 Binary files /dev/null and b/ext/bin/miniupnpc/windows-x86/miniupnpc.lib differ diff --git a/ext/installfiles/windows/ZeroTier One.aip b/ext/installfiles/windows/ZeroTier One.aip index ff7ee2190..617556988 100644 --- a/ext/installfiles/windows/ZeroTier One.aip +++ b/ext/installfiles/windows/ZeroTier One.aip @@ -23,7 +23,7 @@ - + @@ -87,8 +87,8 @@ - - + + diff --git a/osdep/Phy.hpp b/osdep/Phy.hpp index 5afd715bf..2ea68b9de 100644 --- a/osdep/Phy.hpp +++ b/osdep/Phy.hpp @@ -781,7 +781,7 @@ public: // Causes entry to be deleted from list in poll(), ignored elsewhere sws.type = ZT_PHY_SOCKET_CLOSED; - if (sws.sock >= _nfds) { + if ((long)sws.sock >= (long)_nfds) { long nfds = (long)_whackSendSocket; if ((long)_whackReceiveSocket > nfds) nfds = (long)_whackReceiveSocket; diff --git a/osdep/UPNPClient.cpp b/osdep/UPNPClient.cpp index 20aa9d391..ceecb3a3a 100644 --- a/osdep/UPNPClient.cpp +++ b/osdep/UPNPClient.cpp @@ -40,8 +40,14 @@ #include "../node/Utils.hpp" #include "UPNPClient.hpp" -#include -#include +#ifdef __WINDOWS__ +#ifndef MINIUPNP_STATICLIB +#define MINIUPNP_STATICLIB +#endif +#endif + +#include "../ext/bin/miniupnpc/include/miniupnpc/miniupnpc.h" +#include "../ext/bin/miniupnpc/include/miniupnpc/upnpcommands.h" namespace ZeroTier { diff --git a/windows/ZeroTierOne/ZeroTierOne.vcxproj b/windows/ZeroTierOne/ZeroTierOne.vcxproj index 554669b60..14bf7c3eb 100644 --- a/windows/ZeroTierOne/ZeroTierOne.vcxproj +++ b/windows/ZeroTierOne/ZeroTierOne.vcxproj @@ -47,6 +47,7 @@ + true @@ -61,6 +62,22 @@ + + + + + + + + + + + + + + + + @@ -108,6 +125,7 @@ + @@ -193,12 +211,13 @@ Level3 Disabled true - $(SolutionDir)\ext\bin\libcrypto\include - NOMINMAX;ZT_TRACE;%(PreprocessorDefinitions) + + + NOMINMAX;ZT_TRACE;ZT_USE_MINIUPNPC;%(PreprocessorDefinitions) true - wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + $(SolutionDir)..\ext\bin\miniupnpc\windows-x86\miniupnpc.lib;wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) false @@ -207,12 +226,13 @@ Level3 Disabled true - $(SolutionDir)\ext\bin\libcrypto\include - NOMINMAX;ZT_TRACE;%(PreprocessorDefinitions) + + + NOMINMAX;ZT_TRACE;ZT_USE_MINIUPNPC;%(PreprocessorDefinitions) true - wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + $(SolutionDir)..\ext\bin\miniupnpc\windows-x64\miniupnpc.lib;wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) false @@ -223,8 +243,9 @@ true true true - $(SolutionDir)\ext\bin\libcrypto\include - ZT_OFFICIAL_RELEASE;ZT_AUTO_UPDATE;ZT_SALSA20_SSE;NOMINMAX;%(PreprocessorDefinitions) + + + ZT_OFFICIAL_RELEASE;ZT_AUTO_UPDATE;ZT_SALSA20_SSE;ZT_USE_MINIUPNPC;NOMINMAX;%(PreprocessorDefinitions) MultiThreaded NoExtensions true @@ -236,7 +257,7 @@ true true true - wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + $(SolutionDir)..\ext\bin\miniupnpc\windows-x86\miniupnpc.lib;wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) false @@ -247,8 +268,9 @@ true true true - $(SolutionDir)\ext\bin\libcrypto\include - ZT_OFFICIAL_RELEASE;ZT_AUTO_UPDATE;ZT_SALSA20_SSE;NOMINMAX;%(PreprocessorDefinitions) + + + ZT_OFFICIAL_RELEASE;ZT_AUTO_UPDATE;ZT_SALSA20_SSE;ZT_USE_MINIUPNPC;NOMINMAX;%(PreprocessorDefinitions) MultiThreaded NotSet true @@ -260,7 +282,7 @@ true true true - wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) + $(SolutionDir)..\ext\bin\miniupnpc\windows-x64\miniupnpc.lib;wsock32.lib;ws2_32.lib;newdev.lib;Iphlpapi.lib;Rpcrt4.lib;%(AdditionalDependencies) false diff --git a/windows/ZeroTierOne/ZeroTierOne.vcxproj.filters b/windows/ZeroTierOne/ZeroTierOne.vcxproj.filters index f36b5dc0e..abaa8547d 100644 --- a/windows/ZeroTierOne/ZeroTierOne.vcxproj.filters +++ b/windows/ZeroTierOne/ZeroTierOne.vcxproj.filters @@ -70,6 +70,15 @@ {bf604491-14c4-4a74-81a6-6105d07c5c7c} + + {5939db69-ab17-47c6-97fb-185e2c678737} + + + {3666f510-b6da-47cb-8039-56441f2dac3e} + + + {1a47071e-e51b-4535-89ae-858946f03118} + @@ -177,6 +186,9 @@ Source Files\osdep + + Source Files\osdep + @@ -347,6 +359,57 @@ Header Files\node + + Header Files\osdep + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include + + + Header Files\ext\bin\miniupnpc\include +