summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
Diffstat (limited to 'node')
-rw-r--r--node/Node.cpp26
-rw-r--r--node/Node.hpp10
2 files changed, 36 insertions, 0 deletions
diff --git a/node/Node.cpp b/node/Node.cpp
index cd8cfb5e..cbea5694 100644
--- a/node/Node.cpp
+++ b/node/Node.cpp
@@ -188,6 +188,32 @@ std::vector<std::string> Node::LocalClient::splitLine(const char *line)
return Utils::split(line," ","\\","\"");
}
+std::string Node::LocalClient::authTokenDefaultUserPath()
+{
+ const char *home = getenv("HOME");
+ if (home) {
+#ifdef __APPLE__
+ return (std::string(home) + "/Library/Application Support/ZeroTier/One/authtoken.secret");
+#else
+ return (std::string(home) + "/.zeroTierOneAuthToken");
+#endif
+ }
+ return std::string();
+}
+
+std::string Node::LocalClient::authTokenDefaultSystemPath()
+{
+#ifdef __WINDOWS__
+ // TODO
+#else
+#ifdef __APPLE__
+ return "/Library/Application Support/ZeroTier/One/authtoken.secret";
+#else
+ return "/var/lib/zerotier-one/authtoken.secret";
+#endif
+#endif
+}
+
struct _NodeImpl
{
RuntimeEnvironment renv;
diff --git a/node/Node.hpp b/node/Node.hpp
index 2736713f..a6410992 100644
--- a/node/Node.hpp
+++ b/node/Node.hpp
@@ -84,6 +84,16 @@ public:
static std::vector<std::string> splitLine(const char *line);
static inline std::vector<std::string> splitLine(const std::string &line) { return splitLine(line.c_str()); }
+ /**
+ * @return Default path for user-local authorization token for the current user or empty string if cannot be determined
+ */
+ static std::string authTokenDefaultUserPath();
+
+ /**
+ * @return Default system path for auth token on this platform
+ */
+ static std::string authTokenDefaultSystemPath();
+
private:
// LocalClient is not copyable
LocalClient(const LocalClient&);