diff options
| author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-01-03 14:03:29 -0800 |
|---|---|---|
| committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2014-01-03 14:03:29 -0800 |
| commit | 22b52858e04c25709081251300fed6cdc42810be (patch) | |
| tree | 1e821cee94f151c3d4c74116dee388611b933ade /node | |
| parent | baea75f2dfa21ca76a9b6eb2be83e0681f0024b0 (diff) | |
| download | infinitytier-22b52858e04c25709081251300fed6cdc42810be.tar.gz infinitytier-22b52858e04c25709081251300fed6cdc42810be.zip | |
Fix -h in zerotier-cli and move code to find auth token into LocalClient, also move auth token for mac into Mac-standard Library/Application Support location.
Diffstat (limited to 'node')
| -rw-r--r-- | node/Node.cpp | 26 | ||||
| -rw-r--r-- | node/Node.hpp | 10 |
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&); |
