summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--controller/EmbeddedNetworkController.cpp18
-rw-r--r--controller/JSONDB.hpp5
2 files changed, 4 insertions, 19 deletions
diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp
index 21cd78e4..8f86cc46 100644
--- a/controller/EmbeddedNetworkController.cpp
+++ b/controller/EmbeddedNetworkController.cpp
@@ -63,24 +63,6 @@ using json = nlohmann::json;
namespace ZeroTier {
-// JSON blob I/O
-/*
-static json _readJson(const std::string &path)
-{
- std::string buf;
- if (OSUtils::readFile(path.c_str(),buf)) {
- try {
- return json::parse(buf);
- } catch ( ... ) {}
- }
- return json::object();
-}
-static bool _writeJson(const std::string &path,const json &obj)
-{
- return OSUtils::writeFile(path.c_str(),obj.dump(2));
-}
-*/
-
// Get JSON values as unsigned integers, strings, or booleans, doing type conversion if possible
static uint64_t _jI(const json &jv,const uint64_t dfl)
{
diff --git a/controller/JSONDB.hpp b/controller/JSONDB.hpp
index e33cd768..61735655 100644
--- a/controller/JSONDB.hpp
+++ b/controller/JSONDB.hpp
@@ -19,6 +19,9 @@
#ifndef ZT_JSONDB_HPP
#define ZT_JSONDB_HPP
+#include <stdlib.h>
+#include <string.h>
+
#include <string>
#include <map>
#include <stdexcept>
@@ -75,7 +78,7 @@ public:
inline void filter(const std::string &prefix,unsigned long maxSinceCheck,F func)
{
for(std::map<std::string,_E>::iterator i(_db.lower_bound(prefix));i!=_db.end();) {
- if (i->first.substr(0,prefix.length()) == prefix) {
+ if ((i->first.length() >= prefix.length())&&(!memcmp(i->first.data(),prefix.data(),prefix.length()))) {
if (!func(i->first,get(i->second.obj,maxSinceCheck))) {
std::map<std::string,_E>::iterator i2(i); ++i2;
this->erase(i->first);