|
|
|
|
@ -164,6 +164,9 @@ RethinkDB::RethinkDB(EmbeddedNetworkController *const nc,const Address &myAddres
|
|
|
|
|
const std::string tmp = (*config)["id"]; |
|
|
|
|
deleteId.append(tmp); |
|
|
|
|
table = "Member"; |
|
|
|
|
} else if (objtype == "trace") { |
|
|
|
|
record = *config; |
|
|
|
|
table = "RemoteTrace"; |
|
|
|
|
} else { |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
@ -452,6 +455,21 @@ void RethinkDB::_memberChanged(nlohmann::json &old,nlohmann::json &member)
|
|
|
|
|
|
|
|
|
|
_controller->onNetworkMemberUpdate(networkId,memberId); |
|
|
|
|
} |
|
|
|
|
} else if (memberId) { |
|
|
|
|
if (nw) { |
|
|
|
|
std::lock_guard<std::mutex> l(nw->lock); |
|
|
|
|
nw->members.erase(memberId); |
|
|
|
|
} |
|
|
|
|
if (networkId) { |
|
|
|
|
std::lock_guard<std::mutex> l(_networks_l); |
|
|
|
|
auto er = _networkByMember.equal_range(memberId); |
|
|
|
|
for(auto i=er.first;i!=er.second;++i) { |
|
|
|
|
if (i->second == networkId) { |
|
|
|
|
_networkByMember.erase(i); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if ((wasAuth)&&(!isAuth)&&(networkId)&&(memberId)) |
|
|
|
|
|