summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2019-08-08 16:30:52 -0500
committerAdam Ierymenko <adam.ierymenko@gmail.com>2019-08-08 16:30:52 -0500
commit760ae07d7243b8e7ff6ec03cf508058c287c219f (patch)
treed25a8d417a77ec779fe9f31b079c5622223942ac
parent28d0070ce2e791727c388646f22119e350ab6d78 (diff)
downloadinfinitytier-760ae07d7243b8e7ff6ec03cf508058c287c219f.tar.gz
infinitytier-760ae07d7243b8e7ff6ec03cf508058c287c219f.zip
Sync bug fix
-rw-r--r--controller/LFDB.cpp40
1 files changed, 16 insertions, 24 deletions
diff --git a/controller/LFDB.cpp b/controller/LFDB.cpp
index 35068321..d00d8631 100644
--- a/controller/LFDB.cpp
+++ b/controller/LFDB.cpp
@@ -220,20 +220,16 @@ LFDB::LFDB(const Identity &myId,const char *path,const char *lfOwnerPrivate,cons
const uint64_t id = Utils::hexStrToU64(idstr.c_str());
if ((id >> 24) == controllerAddressInt) { // sanity check
- std::lock_guard<std::mutex> sl(_state_l);
- _NetworkState &ns = _state[id];
- if (!ns.dirty) {
- nlohmann::json oldNetwork;
- if ((timeRangeStart > 0)&&(get(id,oldNetwork))) {
- const uint64_t revision = network["revision"];
- const uint64_t prevRevision = oldNetwork["revision"];
- if (prevRevision < revision) {
- _networkChanged(oldNetwork,network,timeRangeStart > 0);
- }
- } else {
- nlohmann::json nullJson;
- _networkChanged(nullJson,network,timeRangeStart > 0);
+ nlohmann::json oldNetwork;
+ if ((timeRangeStart > 0)&&(get(id,oldNetwork))) {
+ const uint64_t revision = network["revision"];
+ const uint64_t prevRevision = oldNetwork["revision"];
+ if (prevRevision < revision) {
+ _networkChanged(oldNetwork,network,timeRangeStart > 0);
}
+ } else {
+ nlohmann::json nullJson;
+ _networkChanged(nullJson,network,timeRangeStart > 0);
}
}
@@ -294,17 +290,13 @@ LFDB::LFDB(const Identity &myId,const char *path,const char *lfOwnerPrivate,cons
const uint64_t id = Utils::hexStrToU64(idstr.c_str());
if ((id)&&((nwid >> 24) == controllerAddressInt)) { // sanity check
- std::lock_guard<std::mutex> sl(_state_l);
- auto ns = _state.find(nwid);
- if ((ns == _state.end())||(!ns->second.members[id].dirty)) {
- nlohmann::json network,oldMember;
- if ((timeRangeStart > 0)&&(get(nwid,network,id,oldMember))) {
- const uint64_t revision = member["revision"];
- const uint64_t prevRevision = oldMember["revision"];
- if (prevRevision < revision)
- _memberChanged(oldMember,member,timeRangeStart > 0);
- }
- } else {
+ nlohmann::json network,oldMember;
+ if ((timeRangeStart > 0)&&(get(nwid,network,id,oldMember))) {
+ const uint64_t revision = member["revision"];
+ const uint64_t prevRevision = oldMember["revision"];
+ if (prevRevision < revision)
+ _memberChanged(oldMember,member,timeRangeStart > 0);
+ } else if (network.is_object()) {
nlohmann::json nullJson;
_memberChanged(nullJson,member,timeRangeStart > 0);
}