summaryrefslogtreecommitdiff
path: root/node
diff options
context:
space:
mode:
Diffstat (limited to 'node')
-rw-r--r--node/Network.cpp8
-rw-r--r--node/Node.cpp4
-rw-r--r--node/Utils.hpp27
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