Browse Source

Tear down routes before devices when leaving a network or shutting down.

Adam Ierymenko 3 years ago
parent
commit
d7ba2957cd
1 changed files with 9 additions and 0 deletions
  1. 9 0
      service/OneService.cpp

+ 9 - 0
service/OneService.cpp

@@ -539,6 +539,15 @@ public:
 			memset(&config, 0, sizeof(ZT_VirtualNetworkConfig));
 			memset(&config, 0, sizeof(ZT_VirtualNetworkConfig));
 		}
 		}
 
 
+		~NetworkState()
+		{
+			this->managedRoutes.clear();
+#ifdef __APPLE__
+			Thread::sleep(10);
+			this->tap.reset();
+#endif
+		}
+
 		std::shared_ptr<EthernetTap> tap;
 		std::shared_ptr<EthernetTap> tap;
 		ZT_VirtualNetworkConfig config; // memcpy() of raw config from core
 		ZT_VirtualNetworkConfig config; // memcpy() of raw config from core
 		std::vector<InetAddress> managedIps;
 		std::vector<InetAddress> managedIps;