Browse Source

Merge branch 'dev' of github.com:zerotier/ZeroTierOne into dev

Adam Ierymenko 3 years ago
parent
commit
3a4425fd4e
4 changed files with 408 additions and 170 deletions
  1. 28 0
      Dockerfile.ci
  2. 6 1
      RELEASE-NOTES.md
  3. 363 168
      ext/json/json.hpp
  4. 11 1
      node/Peer.cpp

+ 28 - 0
Dockerfile.ci

@@ -0,0 +1,28 @@
+# vim: ft=dockerfile
+
+FROM ubuntu:21.04 as stage
+
+RUN apt-get update -qq && apt-get -qq install make clang
+COPY . .
+RUN /usr/bin/make
+RUN echo $PWD
+RUN cp zerotier-one /usr/sbin
+
+FROM ubuntu:21.04
+
+COPY --from=stage /zerotier-one /usr/sbin
+RUN ln -sf /usr/sbin/zerotier-one /usr/sbin/zerotier-idtool
+RUN ln -sf /usr/sbin/zerotier-one /usr/sbin/zerotier-cli
+
+RUN echo "${VERSION}" > /etc/zerotier-version
+RUN rm -rf /var/lib/zerotier-one
+
+
+RUN apt-get -qq update
+RUN apt-get -qq install iproute2 net-tools fping 2ping iputils-ping iputils-arping
+
+COPY entrypoint.sh.release /entrypoint.sh
+RUN chmod 755 /entrypoint.sh
+
+CMD []
+ENTRYPOINT ["/entrypoint.sh"]

+ 6 - 1
RELEASE-NOTES.md

@@ -6,7 +6,12 @@ ZeroTier Release Notes
  * A *completely* rewritten desktop UI for Mac and Windows!
  * Implement a workaround for one potential source of a "coma" bug, which can occur if buggy NATs/routers stop allowing the service to communicate on a given port. ZeroTier now reassigns a new secondary port if it's offline for a while unless a secondary port is manually specified in local.conf.
  * Fix for MacOS MTU issue on feth devices.
-
+ * Fix for using v6 source addresses for v4 routes
+ * Stop binding to temporary IPv6 addresses
+ * Set MAC address before bringing up Linux TAP link
+ * Check if DNS servers need to be Applied on macOS
+ * Using json.hpp version 3.10.2
+ 
 # 2021-04-13 -- Version 1.6.5
 
  * Fix a bug in potential network path filtering that could in some circumstances lead to "software laser" effects.

File diff suppressed because it is too large
+ 363 - 168
ext/json/json.hpp


+ 11 - 1
node/Peer.cpp

@@ -445,11 +445,21 @@ void Peer::tryMemorizedPath(void *tPtr,int64_t now)
 void Peer::performMultipathStateCheck(void *tPtr, int64_t now)
 {
 	Mutex::Lock _l(_bond_m);
+	if (_bond) {
+		// Once enabled the Bond object persists, no need to update state
+		return;
+	}
 	/**
 	 * Check for conditions required for multipath bonding and create a bond
 	 * if allowed.
 	 */
-	_localMultipathSupported = ((RR->bc->inUse()) && (ZT_PROTO_VERSION > 9));
+	int numAlivePaths = 0;
+	for(unsigned int i=0;i<ZT_MAX_PEER_NETWORK_PATHS;++i) {
+		if (_paths[i].p && _paths[i].p->alive(now)) {
+			numAlivePaths++;
+		}
+	}
+	_localMultipathSupported = ((numAlivePaths >= 1) && (RR->bc->inUse()) && (ZT_PROTO_VERSION > 9));
 	if (_localMultipathSupported && !_bond) {
 		if (RR->bc) {
 			_bond = RR->bc->createTransportTriggeredBond(RR, this);

Some files were not shown because too many files changed in this diff