summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdam Ierymenko <adam.ierymenko@gmail.com>2019-05-14 13:54:27 -0700
committerAdam Ierymenko <adam.ierymenko@gmail.com>2019-05-14 13:54:27 -0700
commitcacdb445c786f97d5d9af200b17665bb171a42d9 (patch)
tree745f212588b6e8e65fb0edb708e801a96cf1d074
parent4743ad0b16a72c00039de1aed98499fe0adf633f (diff)
downloadinfinitytier-cacdb445c786f97d5d9af200b17665bb171a42d9.tar.gz
infinitytier-cacdb445c786f97d5d9af200b17665bb171a42d9.zip
Bump protocol version to 10
-rw-r--r--controller/EmbeddedNetworkController.cpp4
-rw-r--r--node/Packet.hpp51
-rw-r--r--node/Peer.cpp4
-rw-r--r--node/Peer.hpp2
4 files changed, 33 insertions, 28 deletions
diff --git a/controller/EmbeddedNetworkController.cpp b/controller/EmbeddedNetworkController.cpp
index 28115a03..cc012929 100644
--- a/controller/EmbeddedNetworkController.cpp
+++ b/controller/EmbeddedNetworkController.cpp
@@ -1620,7 +1620,7 @@ void EmbeddedNetworkController::_request(
if ( (ipRangeStartIA.ss_family == AF_INET) && (ipRangeEndIA.ss_family == AF_INET) ) {
uint32_t ipRangeStart = Utils::ntoh((uint32_t)(reinterpret_cast<struct sockaddr_in *>(&ipRangeStartIA)->sin_addr.s_addr));
uint32_t ipRangeEnd = Utils::ntoh((uint32_t)(reinterpret_cast<struct sockaddr_in *>(&ipRangeEndIA)->sin_addr.s_addr));
-
+
if ((ipRangeEnd < ipRangeStart)||(ipRangeStart == 0))
continue;
uint32_t ipRangeLen = ipRangeEnd - ipRangeStart;
@@ -1671,7 +1671,7 @@ void EmbeddedNetworkController::_request(
}
}
}
-
+
// Issue a certificate of ownership for all static IPs
if (nc->staticIpCount) {
nc->certificatesOfOwnership[0] = CertificateOfOwnership(nwid,now,identity.address(),1);
diff --git a/node/Packet.hpp b/node/Packet.hpp
index ef52d87d..8b17bcd0 100644
--- a/node/Packet.hpp
+++ b/node/Packet.hpp
@@ -45,31 +45,34 @@
/**
* Protocol version -- incremented only for major changes
*
- * 1 - 0.2.0 ... 0.2.5
- * 2 - 0.3.0 ... 0.4.5
- * + Added signature and originating peer to multicast frame
- * + Double size of multicast frame bloom filter
- * 3 - 0.5.0 ... 0.6.0
- * + Yet another multicast redesign
- * + New crypto completely changes key agreement cipher
- * 4 - 0.6.0 ... 1.0.6
- * + BREAKING CHANGE: New identity format based on hashcash design
- * 5 - 1.1.0 ... 1.1.5
- * + Supports echo
- * + Supports in-band world (root server definition) updates
- * + Clustering! (Though this will work with protocol v4 clients.)
- * + Otherwise backward compatible with protocol v4
- * 6 - 1.1.5 ... 1.1.10
- * + Network configuration format revisions including binary values
- * 7 - 1.1.10 ... 1.1.17
- * + Introduce trusted paths for local SDN use
- * 8 - 1.1.17 ... 1.2.0
- * + Multipart network configurations for large network configs
- * + Tags and Capabilities
- * + Inline push of CertificateOfMembership deprecated
- * 9 - 1.2.0 ... CURRENT
+ * 1 - 0.2.0 ... 0.2.5
+ * 2 - 0.3.0 ... 0.4.5
+ * + Added signature and originating peer to multicast frame
+ * + Double size of multicast frame bloom filter
+ * 3 - 0.5.0 ... 0.6.0
+ * + Yet another multicast redesign
+ * + New crypto completely changes key agreement cipher
+ * 4 - 0.6.0 ... 1.0.6
+ * + BREAKING CHANGE: New identity format based on hashcash design
+ * 5 - 1.1.0 ... 1.1.5
+ * + Supports echo
+ * + Supports in-band world (root server definition) updates
+ * + Clustering! (Though this will work with protocol v4 clients.)
+ * + Otherwise backward compatible with protocol v4
+ * 6 - 1.1.5 ... 1.1.10
+ * + Network configuration format revisions including binary values
+ * 7 - 1.1.10 ... 1.1.17
+ * + Introduce trusted paths for local SDN use
+ * 8 - 1.1.17 ... 1.2.0
+ * + Multipart network configurations for large network configs
+ * + Tags and Capabilities
+ * + Inline push of CertificateOfMembership deprecated
+ * 9 - 1.2.0 ... 1.2.14
+ * 10 - 1.4.0 ... CURRENT
+ * + Multipath capability and load balancing
+ * + Certificates of Delegation (CoDs) for full root decentralization
*/
-#define ZT_PROTO_VERSION 9
+#define ZT_PROTO_VERSION 10
/**
* Minimum supported protocol version
diff --git a/node/Peer.cpp b/node/Peer.cpp
index b0c7db77..95a26003 100644
--- a/node/Peer.cpp
+++ b/node/Peer.cpp
@@ -650,10 +650,11 @@ void Peer::introduce(void *const tPtr,const int64_t now,const SharedPtr<Peer> &o
}
}
-inline void Peer::processBackgroundPeerTasks(int64_t now)
+inline void Peer::processBackgroundPeerTasks(const int64_t now)
{
// Determine current multipath compatibility with other peer
if ((now - _lastMultipathCompatibilityCheck) >= ZT_PATH_QUALITY_COMPUTE_INTERVAL) {
+ //
// Cache number of available paths so that we can short-circuit multipath logic elsewhere
//
// We also take notice of duplicate paths (same IP only) because we may have
@@ -663,6 +664,7 @@ inline void Peer::processBackgroundPeerTasks(int64_t now)
//
// This is done to support the behavior of auto multipath enable/disable
// without user intervention.
+ //
int currAlivePathCount = 0;
int duplicatePathsFound = 0;
for (unsigned int i=0;i<ZT_MAX_PEER_NETWORK_PATHS;++i) {
diff --git a/node/Peer.hpp b/node/Peer.hpp
index 947d8861..b4cbe057 100644
--- a/node/Peer.hpp
+++ b/node/Peer.hpp
@@ -419,7 +419,7 @@ public:
*
* @param now Current time
*/
- inline void processBackgroundPeerTasks(int64_t now);
+ inline void processBackgroundPeerTasks(const int64_t now);
/**
* Record that the remote peer does have multipath enabled. As is evident by the receipt of a VERB_ACK