diff options
Diffstat (limited to 'node')
-rw-r--r-- | node/Network.cpp | 8 | ||||
-rw-r--r-- | node/Node.cpp | 4 | ||||
-rw-r--r-- | node/Utils.hpp | 27 |
3 files changed, 33 insertions, 6 deletions
diff --git a/node/Network.cpp b/node/Network.cpp index 127de917..94eef23f 100644 --- a/node/Network.cpp +++ b/node/Network.cpp @@ -111,8 +111,8 @@ Network::~Network() if (_destroyOnDelete) { std::string confPath(_r->homePath + ZT_PATH_SEPARATOR_S + "networks.d" + ZT_PATH_SEPARATOR_S + toString() + ".conf"); std::string mcdbPath(_r->homePath + ZT_PATH_SEPARATOR_S + "networks.d" + ZT_PATH_SEPARATOR_S + toString() + ".mcerts"); - unlink(confPath.c_str()); - unlink(mcdbPath.c_str()); + Utils::rm(confPath); + Utils::rm(mcdbPath); } else { // Causes flush of membership certs to disk clean(); @@ -204,7 +204,7 @@ void Network::clean() Mutex::Lock _l(_lock); if (_configuration.isOpen()) { _membershipCertificates.clear(); - unlink(mcdbPath.c_str()); + Utils::rm(mcdbPath); } else { FILE *mcdb = fopen(mcdbPath.c_str(),"wb"); bool writeError = false; @@ -236,7 +236,7 @@ void Network::clean() if (mcdb) fclose(mcdb); if (writeError) { - unlink(mcdbPath.c_str()); + Utils::rm(mcdbPath); LOG("error: unable to write to membership cert database at: %s",mcdbPath.c_str()); } } diff --git a/node/Node.cpp b/node/Node.cpp index 92d8a75c..47125854 100644 --- a/node/Node.cpp +++ b/node/Node.cpp @@ -339,8 +339,8 @@ Node::ReasonForTermination Node::run() Utils::lockDownFile(identitySecretPath.c_str(),false); // Clean up some obsolete files if present -- this will be removed later - unlink((_r->homePath + ZT_PATH_SEPARATOR_S + "status").c_str()); - unlink((_r->homePath + ZT_PATH_SEPARATOR_S + "thisdeviceismine").c_str()); + Utils::rm((_r->homePath + ZT_PATH_SEPARATOR_S + "status")); + Utils::rm((_r->homePath + ZT_PATH_SEPARATOR_S + "thisdeviceismine")); // Make sure networks.d exists mkdir((_r->homePath + ZT_PATH_SEPARATOR_S + "networks.d").c_str(),0700); diff --git a/node/Utils.hpp b/node/Utils.hpp index a222ca4f..872201f8 100644 --- a/node/Utils.hpp +++ b/node/Utils.hpp @@ -43,6 +43,12 @@ #include "../ext/lz4/lz4.h" #include "../ext/lz4/lz4hc.h" +#ifdef __WINDOWS__ +#include <windows.h> +#else +#include <unistd.h> +#endif + #include "Constants.hpp" /** @@ -59,6 +65,27 @@ class Utils { public: /** + * Delete a file + * + * @param path Path to delete + * @return True if delete was successful + */ + static inline bool rm(const char *path) + throw() + { +#ifdef __WINDOWS__ + foo; +#else + return (unlink(path) == 0); +#endif + } + static inline bool rm(const std::string &path) + throw() + { + return rm(path.c_str()); + } + + /** * List a directory's contents * * @param path Path to list |