summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2017-08-30 17:22:25 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2017-08-30 17:22:25 -0700
commit5bf5d5e9cbf799987897fd3ea07e212c1ff1ab6c (patch)
tree0603e50c62125a176cdc1ec2da8f91de17a6ace2
parente51e212b9543b82a3994b730a39aed7796c29ea1 (diff)
downloadinfinitytier-5bf5d5e9cbf799987897fd3ea07e212c1ff1ab6c.tar.gz
infinitytier-5bf5d5e9cbf799987897fd3ea07e212c1ff1ab6c.zip
Minor controller stuff.
-rw-r--r--controller/EmbeddedNetworkController.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp
index 0f342fa5..8d5febd9 100644
--- a/controller/EmbeddedNetworkController.cpp
+++ b/controller/EmbeddedNetworkController.cpp
@@ -1242,7 +1242,7 @@ void EmbeddedNetworkController::_request(
_initMember(member);
{
- std::string haveIdStr(OSUtils::jsonString(member["identity"],""));
+ const std::string haveIdStr(OSUtils::jsonString(member["identity"],""));
if (haveIdStr.length() > 0) {
// If we already know this member's identity perform a full compare. This prevents
// a "collision" from being able to auth onto our network in place of an already
@@ -1308,8 +1308,6 @@ void EmbeddedNetworkController::_request(
member["lastAuthorizedTime"] = now;
member["lastAuthorizedCredentialType"] = autoAuthCredentialType;
member["lastAuthorizedCredential"] = autoAuthCredential;
- json &revj = member["revision"];
- member["revision"] = (revj.is_number() ? ((uint64_t)revj + 1ULL) : 1ULL);
}
if (authorized) {
@@ -1338,6 +1336,7 @@ void EmbeddedNetworkController::_request(
if (fromAddr)
ms.physicalAddr = fromAddr;
+
char tmpip[64];
if (ms.physicalAddr)
member["physicalAddr"] = ms.physicalAddr.toString(tmpip);
@@ -1346,8 +1345,11 @@ void EmbeddedNetworkController::_request(
} else {
// If they are not authorized, STOP!
_removeMemberNonPersistedFields(member);
- if (origMember != member)
+ if (origMember != member) {
+ json &revj = member["revision"];
+ member["revision"] = (revj.is_number() ? ((uint64_t)revj + 1ULL) : 1ULL);
_db.saveNetworkMember(nwid,identity.address().toInt(),member);
+ }
_sender->ncSendError(nwid,requestPacketId,identity.address(),NetworkController::NC_ERROR_ACCESS_DENIED);
return;
}
@@ -1710,8 +1712,11 @@ void EmbeddedNetworkController::_request(
}
_removeMemberNonPersistedFields(member);
- if (member != origMember)
+ if (member != origMember) {
+ json &revj = member["revision"];
+ member["revision"] = (revj.is_number() ? ((uint64_t)revj + 1ULL) : 1ULL);
_db.saveNetworkMember(nwid,identity.address().toInt(),member);
+ }
_sender->ncSendConfig(nwid,requestPacketId,identity.address(),*(nc.get()),metaData.getUI(ZT_NETWORKCONFIG_REQUEST_METADATA_KEY_VERSION,0) < 6);
}