From 5b3d9f9184ea8bf99a2c7d180feaad31e41c49ff Mon Sep 17 00:00:00 2001 From: Alex Date: Tue, 13 Jun 2017 13:28:23 -0700 Subject: [PATCH] added Windows SDK in form of dlls --- include/ZeroTierOne.h | 79 ++++-- windows/ZeroTierOneSDK.sln | 28 ++ windows/ZeroTierOneSDK/ZeroTierOneSDK.vcxproj | 257 ++++++++++++++++++ .../ZeroTierOneSDK.vcxproj.filters | 240 ++++++++++++++++ windows/ZeroTierOneSDK/dllmain.cpp | 22 ++ windows/ZeroTierOneSDK/targetver.h | 8 + windows/lib/ZeroTierOne_x64d.exp | Bin 0 -> 4623 bytes windows/lib/ZeroTierOne_x64d.lib | Bin 0 -> 8474 bytes 8 files changed, 606 insertions(+), 28 deletions(-) create mode 100644 windows/ZeroTierOneSDK.sln create mode 100644 windows/ZeroTierOneSDK/ZeroTierOneSDK.vcxproj create mode 100644 windows/ZeroTierOneSDK/ZeroTierOneSDK.vcxproj.filters create mode 100644 windows/ZeroTierOneSDK/dllmain.cpp create mode 100644 windows/ZeroTierOneSDK/targetver.h create mode 100644 windows/lib/ZeroTierOne_x64d.exp create mode 100644 windows/lib/ZeroTierOne_x64d.lib diff --git a/include/ZeroTierOne.h b/include/ZeroTierOne.h index 5126c5a22..318e7e761 100644 --- a/include/ZeroTierOne.h +++ b/include/ZeroTierOne.h @@ -46,6 +46,29 @@ #include #endif /* Windows or not */ +#if defined (_MSC_VER) +#ifdef ZT_EXPORT +#define ZT_SDK_API __declspec(dllexport) +#else +#define ZT_SDK_API __declspec(dllimport) +#ifdef _DEBUG +#ifdef _WIN64 +#pragma comment(lib, "ZeroTierOne_x64d.lib") +#else +#pragma comment(lib, "ZeroTierOne_x86d.lib") +#endif +#else +#ifdef _WIN64 +#pragma comment(lib, "ZeroTierOne_x64.lib") +#else +#pragma comment(lib, "ZeroTierOne_x86.lib") +#endif +#endif +#endif +#else +#define ZT_SDK_API +#endif + #ifdef __cplusplus extern "C" { #endif @@ -1468,7 +1491,7 @@ struct ZT_Node_Callbacks * @param now Current clock in milliseconds * @return OK (0) or error code if a fatal error condition has occurred */ -enum ZT_ResultCode ZT_Node_new(ZT_Node **node,void *uptr,void *tptr,const struct ZT_Node_Callbacks *callbacks,uint64_t now); +ZT_SDK_API enum ZT_ResultCode ZT_Node_new(ZT_Node **node,void *uptr,void *tptr,const struct ZT_Node_Callbacks *callbacks,uint64_t now); /** * Delete a node and free all resources it consumes @@ -1478,7 +1501,7 @@ enum ZT_ResultCode ZT_Node_new(ZT_Node **node,void *uptr,void *tptr,const struct * * @param node Node to delete */ -void ZT_Node_delete(ZT_Node *node); +ZT_SDK_API void ZT_Node_delete(ZT_Node *node); /** * Process a packet received from the physical wire @@ -1493,7 +1516,7 @@ void ZT_Node_delete(ZT_Node *node); * @param nextBackgroundTaskDeadline Value/result: set to deadline for next call to processBackgroundTasks() * @return OK (0) or error code if a fatal error condition has occurred */ -enum ZT_ResultCode ZT_Node_processWirePacket( +ZT_SDK_API enum ZT_ResultCode ZT_Node_processWirePacket( ZT_Node *node, void *tptr, uint64_t now, @@ -1519,7 +1542,7 @@ enum ZT_ResultCode ZT_Node_processWirePacket( * @param nextBackgroundTaskDeadline Value/result: set to deadline for next call to processBackgroundTasks() * @return OK (0) or error code if a fatal error condition has occurred */ -enum ZT_ResultCode ZT_Node_processVirtualNetworkFrame( +ZT_SDK_API enum ZT_ResultCode ZT_Node_processVirtualNetworkFrame( ZT_Node *node, void *tptr, uint64_t now, @@ -1541,7 +1564,7 @@ enum ZT_ResultCode ZT_Node_processVirtualNetworkFrame( * @param nextBackgroundTaskDeadline Value/result: set to deadline for next call to processBackgroundTasks() * @return OK (0) or error code if a fatal error condition has occurred */ -enum ZT_ResultCode ZT_Node_processBackgroundTasks(ZT_Node *node,void *tptr,uint64_t now,volatile uint64_t *nextBackgroundTaskDeadline); +ZT_SDK_API enum ZT_ResultCode ZT_Node_processBackgroundTasks(ZT_Node *node,void *tptr,uint64_t now,volatile uint64_t *nextBackgroundTaskDeadline); /** * Join a network @@ -1557,7 +1580,7 @@ enum ZT_ResultCode ZT_Node_processBackgroundTasks(ZT_Node *node,void *tptr,uint6 * @param uptr An arbitrary pointer to associate with this network (default: NULL) * @return OK (0) or error code if a fatal error condition has occurred */ -enum ZT_ResultCode ZT_Node_join(ZT_Node *node,uint64_t nwid,void *uptr,void *tptr); +ZT_SDK_API enum ZT_ResultCode ZT_Node_join(ZT_Node *node,uint64_t nwid,void *uptr,void *tptr); /** * Leave a network @@ -1574,7 +1597,7 @@ enum ZT_ResultCode ZT_Node_join(ZT_Node *node,uint64_t nwid,void *uptr,void *tpt * @param uptr Target pointer is set to uptr (if not NULL) * @return OK (0) or error code if a fatal error condition has occurred */ -enum ZT_ResultCode ZT_Node_leave(ZT_Node *node,uint64_t nwid,void **uptr,void *tptr); +ZT_SDK_API enum ZT_ResultCode ZT_Node_leave(ZT_Node *node,uint64_t nwid,void **uptr,void *tptr); /** * Subscribe to an Ethernet multicast group @@ -1602,7 +1625,7 @@ enum ZT_ResultCode ZT_Node_leave(ZT_Node *node,uint64_t nwid,void **uptr,void *t * @param multicastAdi Multicast ADI (least significant 32 bits only, use 0 if not needed) * @return OK (0) or error code if a fatal error condition has occurred */ -enum ZT_ResultCode ZT_Node_multicastSubscribe(ZT_Node *node,void *tptr,uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi); +ZT_SDK_API enum ZT_ResultCode ZT_Node_multicastSubscribe(ZT_Node *node,void *tptr,uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi); /** * Unsubscribe from an Ethernet multicast group (or all groups) @@ -1618,7 +1641,7 @@ enum ZT_ResultCode ZT_Node_multicastSubscribe(ZT_Node *node,void *tptr,uint64_t * @param multicastAdi Multicast ADI (least significant 32 bits only, use 0 if not needed) * @return OK (0) or error code if a fatal error condition has occurred */ -enum ZT_ResultCode ZT_Node_multicastUnsubscribe(ZT_Node *node,uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi); +ZT_SDK_API enum ZT_ResultCode ZT_Node_multicastUnsubscribe(ZT_Node *node,uint64_t nwid,uint64_t multicastGroup,unsigned long multicastAdi); /** * Add or update a moon @@ -1634,7 +1657,7 @@ enum ZT_ResultCode ZT_Node_multicastUnsubscribe(ZT_Node *node,uint64_t nwid,uint * @param len Length of moonWorld in bytes * @return Error if moon was invalid or failed to be added */ -enum ZT_ResultCode ZT_Node_orbit(ZT_Node *node,void *tptr,uint64_t moonWorldId,uint64_t moonSeed); +ZT_SDK_API enum ZT_ResultCode ZT_Node_orbit(ZT_Node *node,void *tptr,uint64_t moonWorldId,uint64_t moonSeed); /** * Remove a moon (does nothing if not present) @@ -1644,7 +1667,7 @@ enum ZT_ResultCode ZT_Node_orbit(ZT_Node *node,void *tptr,uint64_t moonWorldId,u * @param moonWorldId World ID of moon to remove * @return Error if anything bad happened */ -enum ZT_ResultCode ZT_Node_deorbit(ZT_Node *node,void *tptr,uint64_t moonWorldId); +ZT_SDK_API enum ZT_ResultCode ZT_Node_deorbit(ZT_Node *node,void *tptr,uint64_t moonWorldId); /** * Get this node's 40-bit ZeroTier address @@ -1652,7 +1675,7 @@ enum ZT_ResultCode ZT_Node_deorbit(ZT_Node *node,void *tptr,uint64_t moonWorldId * @param node Node instance * @return ZeroTier address (least significant 40 bits of 64-bit int) */ -uint64_t ZT_Node_address(ZT_Node *node); +ZT_SDK_API uint64_t ZT_Node_address(ZT_Node *node); /** * Get the status of this node @@ -1660,7 +1683,7 @@ uint64_t ZT_Node_address(ZT_Node *node); * @param node Node instance * @param status Buffer to fill with current node status */ -void ZT_Node_status(ZT_Node *node,ZT_NodeStatus *status); +ZT_SDK_API void ZT_Node_status(ZT_Node *node,ZT_NodeStatus *status); /** * Get a list of known peer nodes @@ -1671,7 +1694,7 @@ void ZT_Node_status(ZT_Node *node,ZT_NodeStatus *status); * @param node Node instance * @return List of known peers or NULL on failure */ -ZT_PeerList *ZT_Node_peers(ZT_Node *node); +ZT_SDK_API ZT_PeerList *ZT_Node_peers(ZT_Node *node); /** * Get the status of a virtual network @@ -1683,7 +1706,7 @@ ZT_PeerList *ZT_Node_peers(ZT_Node *node); * @param nwid 64-bit network ID * @return Network configuration or NULL if we are not a member of this network */ -ZT_VirtualNetworkConfig *ZT_Node_networkConfig(ZT_Node *node,uint64_t nwid); +ZT_SDK_API ZT_VirtualNetworkConfig *ZT_Node_networkConfig(ZT_Node *node,uint64_t nwid); /** * Enumerate and get status of all networks @@ -1691,7 +1714,7 @@ ZT_VirtualNetworkConfig *ZT_Node_networkConfig(ZT_Node *node,uint64_t nwid); * @param node Node instance * @return List of networks or NULL on failure */ -ZT_VirtualNetworkList *ZT_Node_networks(ZT_Node *node); +ZT_SDK_API ZT_VirtualNetworkList *ZT_Node_networks(ZT_Node *node); /** * Free a query result buffer @@ -1701,7 +1724,7 @@ ZT_VirtualNetworkList *ZT_Node_networks(ZT_Node *node); * @param node Node instance * @param qr Query result buffer */ -void ZT_Node_freeQueryResult(ZT_Node *node,void *qr); +ZT_SDK_API void ZT_Node_freeQueryResult(ZT_Node *node,void *qr); /** * Add a local interface address @@ -1725,12 +1748,12 @@ void ZT_Node_freeQueryResult(ZT_Node *node,void *qr); * @param addr Local interface address * @return Boolean: non-zero if address was accepted and added */ -int ZT_Node_addLocalInterfaceAddress(ZT_Node *node,const struct sockaddr_storage *addr); +ZT_SDK_API int ZT_Node_addLocalInterfaceAddress(ZT_Node *node,const struct sockaddr_storage *addr); /** * Clear local interface addresses */ -void ZT_Node_clearLocalInterfaceAddresses(ZT_Node *node); +ZT_SDK_API void ZT_Node_clearLocalInterfaceAddresses(ZT_Node *node); /** * Send a VERB_USER_MESSAGE to another ZeroTier node @@ -1746,7 +1769,7 @@ void ZT_Node_clearLocalInterfaceAddresses(ZT_Node *node); * @param len Length of data in bytes * @return Boolean: non-zero on success, zero on failure */ -int ZT_Node_sendUserMessage(ZT_Node *node,void *tptr,uint64_t dest,uint64_t typeId,const void *data,unsigned int len); +ZT_SDK_API int ZT_Node_sendUserMessage(ZT_Node *node,void *tptr,uint64_t dest,uint64_t typeId,const void *data,unsigned int len); /** * Set a network configuration master instance for this node @@ -1763,7 +1786,7 @@ int ZT_Node_sendUserMessage(ZT_Node *node,void *tptr,uint64_t dest,uint64_t type * @param networkConfigMasterInstance Instance of NetworkConfigMaster C++ class or NULL to disable * @return OK (0) or error code if a fatal error condition has occurred */ -void ZT_Node_setNetconfMaster(ZT_Node *node,void *networkConfigMasterInstance); +ZT_SDK_API void ZT_Node_setNetconfMaster(ZT_Node *node,void *networkConfigMasterInstance); /** * Initialize cluster operation @@ -1816,7 +1839,7 @@ void ZT_Node_setNetconfMaster(ZT_Node *node,void *networkConfigMasterInstance); * @param addressToLocationFunctionArg First argument to addressToLocationFunction() * @return OK or UNSUPPORTED_OPERATION if this Node was not built with cluster support */ -enum ZT_ResultCode ZT_Node_clusterInit( +ZT_SDK_API enum ZT_ResultCode ZT_Node_clusterInit( ZT_Node *node, unsigned int myId, const struct sockaddr_storage *zeroTierPhysicalEndpoints, @@ -1838,7 +1861,7 @@ enum ZT_ResultCode ZT_Node_clusterInit( * @param memberId Member ID (must be less than or equal to ZT_CLUSTER_MAX_MEMBERS) * @return OK or error if clustering is disabled, ID invalid, etc. */ -enum ZT_ResultCode ZT_Node_clusterAddMember(ZT_Node *node,unsigned int memberId); +ZT_SDK_API enum ZT_ResultCode ZT_Node_clusterAddMember(ZT_Node *node,unsigned int memberId); /** * Remove a member from this cluster @@ -1848,7 +1871,7 @@ enum ZT_ResultCode ZT_Node_clusterAddMember(ZT_Node *node,unsigned int memberId) * @param node Node instance * @param memberId Member ID to remove (nothing happens if not present) */ -void ZT_Node_clusterRemoveMember(ZT_Node *node,unsigned int memberId); +ZT_SDK_API void ZT_Node_clusterRemoveMember(ZT_Node *node,unsigned int memberId); /** * Handle an incoming cluster state message @@ -1862,7 +1885,7 @@ void ZT_Node_clusterRemoveMember(ZT_Node *node,unsigned int memberId); * @param msg Cluster message * @param len Length of cluster message */ -void ZT_Node_clusterHandleIncomingMessage(ZT_Node *node,const void *msg,unsigned int len); +ZT_SDK_API void ZT_Node_clusterHandleIncomingMessage(ZT_Node *node,const void *msg,unsigned int len); /** * Get the current status of the cluster from this node's point of view @@ -1873,7 +1896,7 @@ void ZT_Node_clusterHandleIncomingMessage(ZT_Node *node,const void *msg,unsigned * @param node Node instance * @param cs Cluster status structure to fill with data */ -void ZT_Node_clusterStatus(ZT_Node *node,ZT_ClusterStatus *cs); +ZT_SDK_API void ZT_Node_clusterStatus(ZT_Node *node,ZT_ClusterStatus *cs); /** * Set trusted paths @@ -1896,7 +1919,7 @@ void ZT_Node_clusterStatus(ZT_Node *node,ZT_ClusterStatus *cs); * @param ids Array of [count] corresponding non-zero path IDs (zero path IDs are ignored) * @param count Number of trusted paths-- values greater than ZT_MAX_TRUSTED_PATHS are clipped */ -void ZT_Node_setTrustedPaths(ZT_Node *node,const struct sockaddr_storage *networks,const uint64_t *ids,unsigned int count); +ZT_SDK_API void ZT_Node_setTrustedPaths(ZT_Node *node,const struct sockaddr_storage *networks,const uint64_t *ids,unsigned int count); /** * Get ZeroTier One version @@ -1905,7 +1928,7 @@ void ZT_Node_setTrustedPaths(ZT_Node *node,const struct sockaddr_storage *networ * @param minor Result: minor version * @param revision Result: revision */ -void ZT_version(int *major,int *minor,int *revision); +ZT_SDK_API void ZT_version(int *major,int *minor,int *revision); #ifdef __cplusplus } diff --git a/windows/ZeroTierOneSDK.sln b/windows/ZeroTierOneSDK.sln new file mode 100644 index 000000000..3c5c077ae --- /dev/null +++ b/windows/ZeroTierOneSDK.sln @@ -0,0 +1,28 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 14 +VisualStudioVersion = 14.0.25420.1 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZeroTierOneSDK", "ZeroTierOneSDK\ZeroTierOneSDK.vcxproj", "{05E8E6B2-4067-4660-AD85-C8F6130FAFC5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|x64 = Debug|x64 + Debug|x86 = Debug|x86 + Release|x64 = Release|x64 + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {05E8E6B2-4067-4660-AD85-C8F6130FAFC5}.Debug|x64.ActiveCfg = Debug|x64 + {05E8E6B2-4067-4660-AD85-C8F6130FAFC5}.Debug|x64.Build.0 = Debug|x64 + {05E8E6B2-4067-4660-AD85-C8F6130FAFC5}.Debug|x86.ActiveCfg = Debug|Win32 + {05E8E6B2-4067-4660-AD85-C8F6130FAFC5}.Debug|x86.Build.0 = Debug|Win32 + {05E8E6B2-4067-4660-AD85-C8F6130FAFC5}.Release|x64.ActiveCfg = Release|x64 + {05E8E6B2-4067-4660-AD85-C8F6130FAFC5}.Release|x64.Build.0 = Release|x64 + {05E8E6B2-4067-4660-AD85-C8F6130FAFC5}.Release|x86.ActiveCfg = Release|Win32 + {05E8E6B2-4067-4660-AD85-C8F6130FAFC5}.Release|x86.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/windows/ZeroTierOneSDK/ZeroTierOneSDK.vcxproj b/windows/ZeroTierOneSDK/ZeroTierOneSDK.vcxproj new file mode 100644 index 000000000..c566e193f --- /dev/null +++ b/windows/ZeroTierOneSDK/ZeroTierOneSDK.vcxproj @@ -0,0 +1,257 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + + {05E8E6B2-4067-4660-AD85-C8F6130FAFC5} + Win32Proj + ZeroTierOneSDK + 8.1 + + + + DynamicLibrary + true + v140 + Unicode + + + DynamicLibrary + false + v140 + true + Unicode + + + DynamicLibrary + true + v140 + Unicode + + + DynamicLibrary + false + v140 + true + Unicode + + + + + + + + + + + + + + + + + + + + + true + $(SolutionDir)\Build\$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + ZeroTierOne_x86d + + + true + $(SolutionDir)\Build\$(Platform)\$(Configuration)\ + ZeroTierOne_x64d + + + false + $(SolutionDir)\Build\$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + ZeroTierOne_x86 + + + false + $(SolutionDir)\Build\$(Platform)\$(Configuration)\ + ZeroTierOne_x64 + + + + + + Level3 + Disabled + WIN32;_DEBUG;_WINDOWS;_USRDLL;NOMINMAX;ZT_EXPORT;ZT_TRACE;ZT_USE_MINIUPNPC;MINIUPNP_STATICLIB;ZT_SOFTWARE_UPDATE_DEFAULT="disable";%(PreprocessorDefinitions) + + + Windows + true + ws2_32.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) + $(SolutionDir)lib\$(TargetName).lib + + + + + + + Level3 + Disabled + _DEBUG;_WINDOWS;_USRDLL;WIN32;NOMINMAX;ZT_EXPORT;ZT_TRACE;ZT_RULES_ENGINE_DEBUGGING;ZT_USE_MINIUPNPC;MINIUPNP_STATICLIB;ZT_SOFTWARE_UPDATE_DEFAULT="disable";%(PreprocessorDefinitions) + + + Windows + true + ws2_32.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) + $(SolutionDir)lib\$(TargetName).lib + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_WINDOWS;_USRDLL;ZT_EXPORT;ZT_SALSA20_SSE;ZT_USE_MINIUPNPC;MINIUPNP_STATICLIB;WIN32;NOMINMAX;ZT_SOFTWARE_UPDATE_DEFAULT="apply";ZT_BUILD_PLATFORM=2;ZT_BUILD_ARCHITECTURE=1;%(PreprocessorDefinitions) + + + Windows + true + true + true + ws2_32.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) + $(SolutionDir)lib\$(TargetName).lib + + + + + Level3 + + + MaxSpeed + true + true + NDEBUG;_WINDOWS;_USRDLL;ZT_EXPORT;ZT_SOFTWARE_UPDATE_DEFAULT="apply";ZT_SALSA20_SSE;ZT_USE_MINIUPNPC;MINIUPNP_STATICLIB;NOMINMAX;ZT_BUILD_PLATFORM=2;ZT_BUILD_ARCHITECTURE=2;%(PreprocessorDefinitions) + + + Windows + true + true + true + ws2_32.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) + $(SolutionDir)lib\$(TargetName).lib + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + false + + + false + + + false + + + + + + + + \ No newline at end of file diff --git a/windows/ZeroTierOneSDK/ZeroTierOneSDK.vcxproj.filters b/windows/ZeroTierOneSDK/ZeroTierOneSDK.vcxproj.filters new file mode 100644 index 000000000..d7e947f3f --- /dev/null +++ b/windows/ZeroTierOneSDK/ZeroTierOneSDK.vcxproj.filters @@ -0,0 +1,240 @@ + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hh;hpp;hxx;hm;inl;inc;xsd + + + {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} + rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms + + + + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/windows/ZeroTierOneSDK/dllmain.cpp b/windows/ZeroTierOneSDK/dllmain.cpp new file mode 100644 index 000000000..e263848d9 --- /dev/null +++ b/windows/ZeroTierOneSDK/dllmain.cpp @@ -0,0 +1,22 @@ +// dllmain.cpp : Defines the entry point for the DLL application. +#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers +// Windows Header Files: +#include +#include "targetver.h" + +BOOL APIENTRY DllMain( HMODULE hModule, + DWORD ul_reason_for_call, + LPVOID lpReserved + ) +{ + switch (ul_reason_for_call) + { + case DLL_PROCESS_ATTACH: + case DLL_THREAD_ATTACH: + case DLL_THREAD_DETACH: + case DLL_PROCESS_DETACH: + break; + } + return TRUE; +} + diff --git a/windows/ZeroTierOneSDK/targetver.h b/windows/ZeroTierOneSDK/targetver.h new file mode 100644 index 000000000..90e767bfc --- /dev/null +++ b/windows/ZeroTierOneSDK/targetver.h @@ -0,0 +1,8 @@ +#pragma once + +// Including SDKDDKVer.h defines the highest available Windows platform. + +// If you wish to build your application for a previous Windows platform, include WinSDKVer.h and +// set the _WIN32_WINNT macro to the platform you wish to support before including SDKDDKVer.h. + +#include diff --git a/windows/lib/ZeroTierOne_x64d.exp b/windows/lib/ZeroTierOne_x64d.exp new file mode 100644 index 0000000000000000000000000000000000000000..9c42f7ae23a751c29377ad78b330b00e63c56e4a GIT binary patch literal 4623 zcmeH~O>7ip7{{No1K{SVlGW8XmYC_#-hpBB(UYNAE7n3m8|T1Lxh z1vOKWR#FSKQX8$J)wG7z(mGmCXN6;rnZh|~iSgOKjFC2qMLIh+K5QFeTr-RlwyqTi zEl)TTnl2tQ3`e+bG@^CKeskX|gi7!P9&iRrv>YNJ&HM>WeRia|@ar%kIc zg!5?yp(YJlrl+z~V%n~Vxd$EfG_M@a!4O5^g@YQxcJh${CmbOjFAL}VDdCoj;fbEH zO{;cRthEvjF^xP^*IaM3oOgA{%+C=zZMm_aCA=BinL1=!6K0_{c9n(`w!};=SU=a2 z5Kfp^a%>$}?4YJk6&$;48Dp9|6$_s+9j~kvhy8OOakS}hw$%}yFdZ?1QAD_US6Ier zS2*e|afOGGbgWyO+}1jZb`*~WFZ zwn6#jPtZ>2R_U%l7fQDa${7i|25pkA6S`fx*P)A~%RnEL?hWW->9Wur(!B*mp~5I! zgZMlNx(@YcHUQTy*?Z7s(jA6AB;5zl<BgXG>25+-O7|pmw{*9lEz;$nyuJi|4sDh0X=s;pUqaiYGoanleFa@5-6XU}x^JMX zr7J=+(tQhEBV7sFE8T7ATIoD!pLE|t*GV@E?U(Kc=z8fcK(o@_fo_oQdFUSLeuh3E z-9_kL>3)T7lunGq-zA*;ydUs_`ljn zRGEZ(IesDC66#$}FWP0p(@MEWoy_5r zhCSovie^5_{rV|pOLzeGCAkFit?)N~I4+-SpdnLtY}cOfQaewzr%ntGAE)OpGMD;uVr>dK@$b7v0a z^0-7u9M`6ez6_RYO{IA>yfE1$u5hg&-M3GyLgKvoMAyXT)L`jzYWD8b`+GqGWaJ>n! zU&A+obIl33+ILzIUmA(a{?iJ`1t|EC--kAX@>3SjIr`C7q;N%wr9}G@udg|hRP997 z{2o{)m%&IvUBBa}flFd7?)SYUFjqz3p#Kfv z%T6h68kf&e!@YZ4+M{2T`CS8vd?n_WDnahE!`!)P011AMQz%sslI<%Xe%2MxfXtk9 z3^dBxr?w4uV(X&Q3hAbbLVD6$|N=wpTS(-#WK(rtz8p*!`YyOaJvk#ee{|_`srPTWa&nY@RP!oHP|pwZ2Yw;*nGlY1cJ>cXM;oR zed5LlKXJk4=UfjCvG>WX82K(neu|O1G1A7Dv%2{sZ;6r47&#szlQHsKjJzBpS7YSu z82Ke*wSE+g1Po literal 0 HcmV?d00001 diff --git a/windows/lib/ZeroTierOne_x64d.lib b/windows/lib/ZeroTierOne_x64d.lib new file mode 100644 index 0000000000000000000000000000000000000000..283ed10c942cf663d340b52b8203e04cf697b252 GIT binary patch literal 8474 zcmcH;%W@M(ux;}&f*9kc{J<83Jg8LsmIQ=K$v{#z*v7Htq{0Dtr5zgudDpeOg5*MO z9HJG<7xqN>(tdb+23db+23MyD=n zR^`^$smYB0Gd*`cKYK2l%TM|7qC1_>=Ge$)3IM(W=z0v${R*JxG{DFngF(bm7`w>e zl;6b7C!=zoNLguyg}@js9rA@htvskFGfdVQ@}y7JBX z<+a7t;`O!C4Pu$aDzUB`r1W!cPKQ!yWn*b6ND05nq>Qk*u(5KjbY;Fc4>yXX6;mfA zgWSbwsyn+SFGl>vT*IO1L-_?or%Nnt9Q>3}&Q87EN za>=Y{wMD}r)|OTw^I^tNlZkmM=oXfegvgpll8X6kV(1$-v6gXTv~Ag`ngYA6Yw#?f#xe()KL1W=G>CERUSpII~WaB({sWIMEty% zYvjdoOpK4a0A6(iobCbG8^Qh{z{N3u=O+QC5Z+*hF@}%^p*#$*fZ3=MaWu>2G5{~I z{~Ga|$a@d*4|@R~;MfbC;{pm89YETCfG5~K!ZwZb|AF{t$csrC`r$YXz%Y!$5RAY{ zI0#+P2S*?UN8uRsKrbACkKhD!!eKZBgOG+X=!S7G$A9eed>)pE zTTl0%qC@D=@?qFy@W*ij&yE7@ia340n#^Big?ep(Op%NuJ=i}%z>k%~YHwDOhGzwz zXDfM?r)x-!sVY@ukM|2vly9nvO%VhBc^U-XD$7sej|b(LoDhPAwrYjSl8F`AaK zg!|2yofQn5DgAy2{B^bP<5(N!QOtkzGoh1mef!Kh>j7NFAHRtXZwt_UX`-rYj&^27 z3}KpuJ%s-_q66CkOugiEIgZBsin36ipriN#WL~yoJA%2Ee)?2P{S11$598q9E(u)qi@k zt?lhwFE26y)wdml6$$|E3T_FEyIv-d)67vCWP%1wwuzzmv-FF9=r*MuIy=f+Uo>Nk9YInWqPgh&2v)Y^JI=ml`H_Zw>^`_rNhqu(5s9ipsm$b6u zScc**ggjToj>g%kIgkBVH2#Yc*#4{S7ZHtFZYnpL_e6)c1t^GUoD)Md>i-cP58a2e zb1OFf6g5fSSM$Qu8TtxGBU-;tPd_(Q@k|i)QfNh^JSJkFzj?mlk`|xfn%n$Zuwq|& zD|@$7KYvaw6`%Id*P3gOEXWdBzqs*br1ejrCLKOa+*`(c<2Ig%^e8(V2ufF%lZj}O z^JI3fH_|L{FsKQ;fhFP#IdNo5J1~us4+SOrs$u2QW1o7tS+zHQff^hRY9MZtiL73{ z#LND724#18WQ#kiN@$WXf5az~Up7@j<6Akaw(^&_(v(N4d>Kh*kFz1C?P-*L)FYi; z@>L6tZRL>levA^2c_i|eZk5RRHV!#g@$VXZDQcdpjjLGmJzZ($xNC0y8)AK0KXeCWM;=1!}AQHG(&8k%Z2Pe%^rgu`SLSMLefKafmVrWpLFRNM=3tG r?IYGc%b>kSm`w4=rCj9ykN4hL literal 0 HcmV?d00001