浏览代码

Added ability to specify zt home directory via ZEROTIER_HOME - Addresses ticket #829

Joseph Henry 7 年之前
父节点
当前提交
3dd9b1aa9b
共有 1 个文件被更改,包括 16 次插入0 次删除
  1. 16 0
      osdep/OSUtils.cpp

+ 16 - 0
osdep/OSUtils.cpp

@@ -29,6 +29,7 @@
 #include <stdlib.h>
 #include <stdlib.h>
 #include <stdarg.h>
 #include <stdarg.h>
 #include <sys/stat.h>
 #include <sys/stat.h>
+#include <stdlib.h>
 
 
 #include "../node/Constants.hpp"
 #include "../node/Constants.hpp"
 #include "../node/Utils.hpp"
 #include "../node/Utils.hpp"
@@ -398,6 +399,21 @@ std::string OSUtils::platformDefaultHomePath()
     return homeDir;
     return homeDir;
 #endif
 #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 __UNIX_LIKE__
 
 
 #ifdef __APPLE__
 #ifdef __APPLE__