diff options
author | Adam Ierymenko <adam.ierymenko@gmail.com> | 2019-05-14 13:54:27 -0700 |
---|---|---|
committer | Adam Ierymenko <adam.ierymenko@gmail.com> | 2019-05-14 13:54:27 -0700 |
commit | cacdb445c786f97d5d9af200b17665bb171a42d9 (patch) | |
tree | 745f212588b6e8e65fb0edb708e801a96cf1d074 | |
parent | 4743ad0b16a72c00039de1aed98499fe0adf633f (diff) | |
download | infinitytier-cacdb445c786f97d5d9af200b17665bb171a42d9.tar.gz infinitytier-cacdb445c786f97d5d9af200b17665bb171a42d9.zip |
Bump protocol version to 10
-rw-r--r-- | controller/EmbeddedNetworkController.cpp | 4 | ||||
-rw-r--r-- | node/Packet.hpp | 51 | ||||
-rw-r--r-- | node/Peer.cpp | 4 | ||||
-rw-r--r-- | node/Peer.hpp | 2 |
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 |