From 6bc5a84a2d6caa90aa131a705b93c88586b2a95f Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Mon, 20 Jan 2014 16:16:01 -0800 Subject: Windows build fixes and installer work... --- node/Defaults.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) (limited to 'node/Defaults.cpp') diff --git a/node/Defaults.cpp b/node/Defaults.cpp index 3a8defba..e2b91d98 100644 --- a/node/Defaults.cpp +++ b/node/Defaults.cpp @@ -36,6 +36,7 @@ #ifdef __WINDOWS__ #include #include +#include #endif namespace ZeroTier { @@ -78,24 +79,25 @@ static inline std::map< Identity,std::vector > _mkSupernodeMap() static inline std::string _mkDefaultHomePath() { #ifdef __UNIX_LIKE__ + #ifdef __APPLE__ return std::string("/Library/Application Support/ZeroTier/One"); #else return std::string("/var/lib/zerotier-one"); #endif -#else + +#else // not __UNIX_LIKE__ + #ifdef __WINDOWS__ - OSVERSIONINFO vi; - memset (&vi,0,sizeof(vi)); - vi.dwOSVersionInfoSize = sizeof(vi); - GetVersionEx(&vi); - if (vi.dwMajorVersion < 6) - return std::string("C:\\Documents and Settings\\All Users\\Application Data\\ZeroTier\\One"); - return std::string("C:\\ProgramData\\ZeroTier\\One"); + char buf[16384]; + if (SUCCEEDED(SHGetFolderPathA(NULL,CSIDL_COMMON_APPDATA,NULL,0,buf))) + return (std::string(buf) + "\\ZeroTier\\One"); + else return std::string("C:\\ZeroTier\\One"); #else // unknown platform #endif -#endif + +#endif // __UNIX_LIKE__ or not... } static inline std::map< Address,Identity > _mkUpdateAuth() -- cgit v1.2.3