summaryrefslogtreecommitdiff
path: root/osdep
diff options
context:
space:
mode:
Diffstat (limited to 'osdep')
-rw-r--r--osdep/OSUtils.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/osdep/OSUtils.cpp b/osdep/OSUtils.cpp
index 8b7fd948..e6c2f940 100644
--- a/osdep/OSUtils.cpp
+++ b/osdep/OSUtils.cpp
@@ -29,6 +29,7 @@
#include <stdlib.h>
#include <stdarg.h>
#include <sys/stat.h>
+#include <stdlib.h>
#include "../node/Constants.hpp"
#include "../node/Utils.hpp"
@@ -398,6 +399,21 @@ std::string OSUtils::platformDefaultHomePath()
return homeDir;
#endif
+ // Check for user-defined environment variable before using defaults
+#ifdef __WINDOWS__
+ DWORD bufferSize = 65535;
+ std::string userDefinedPath;
+ bufferSize = GetEnvironmentVariable("ZEROTIER_HOME", &userDefinedPath[0], bufferSize);
+ if (bufferSize) {
+ return userDefinedPath;
+ }
+#else
+ if(const char* userDefinedPath = getenv("ZEROTIER_HOME")) {
+ return std::string(userDefinedPath);
+ }
+#endif
+
+ // Finally, resort to using default paths if no user-defined path was provided
#ifdef __UNIX_LIKE__
#ifdef __APPLE__