Ver código fonte

Commented out block which ignores added routes if there already exists an IP in the route's range. Attempted fix for #600

Joseph Henry 7 anos atrás
pai
commit
f7b3ffe8a0
2 arquivos alterados com 7 adições e 0 exclusões
  1. 5 0
      osdep/ManagedRoute.cpp
  2. 2 0
      service/OneService.cpp

+ 5 - 0
osdep/ManagedRoute.cpp

@@ -480,6 +480,10 @@ bool ManagedRoute::sync()
 	// Detect routes previously applied by ZT that don't exist in the system's route list. Re-apply these.
 	// NOTE: The following block was added in reaction to the macOS High Sierra 10.13.2 disappearing 
 	// route issue. This comment should be removed once we're sure this block doesn't have any side-effects.
+	/*
+
+	// Commented out temporarily to test more generalized fix
+
 	bool found = false;
 	std::vector<_RTE> currRoutes(_getRTEs(_target,false));
 	for(std::vector<_RTE>::iterator r(currRoutes.begin());r!=currRoutes.end();++r) {
@@ -496,6 +500,7 @@ bool ManagedRoute::sync()
 		rt = _applied.find(rightt);
 		_applied.erase(rt, _applied.end());
 	}
+	*/
 
 	if (!_applied.count(leftt)) {
 		_applied[leftt] = false; // not ifscoped

+ 2 - 0
service/OneService.cpp

@@ -1610,12 +1610,14 @@ public:
 				bool haveRoute = false;
 
 				// Ignore routes implied by local managed IPs since adding the IP adds the route
+				/*
 				for(std::vector<InetAddress>::iterator ip(n.managedIps.begin());ip!=n.managedIps.end();++ip) {
 					if ((target->netmaskBits() == ip->netmaskBits())&&(target->containsAddress(*ip))) {
 						haveRoute = true;
 						break;
 					}
 				}
+				*/
 				if (haveRoute)
 					continue;