From ce09e363dc95d801e8707a29a0d585089d6c3d09 Mon Sep 17 00:00:00 2001 From: Adam Ierymenko Date: Fri, 24 Apr 2015 16:31:19 -0700 Subject: Destroy tap devices on Windows 'leave'. --- service/OneService.cpp | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'service') diff --git a/service/OneService.cpp b/service/OneService.cpp index c32fb792..bff70500 100644 --- a/service/OneService.cpp +++ b/service/OneService.cpp @@ -461,9 +461,16 @@ public: case ZT1_VIRTUAL_NETWORK_CONFIG_OPERATION_DOWN: case ZT1_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY: if (t != _taps.end()) { +#ifdef __WINDOWS__ + std::string winInstanceId(t->second->instanceId()); +#endif delete t->second; _taps.erase(t); _tapAssignedIps.erase(nwid); +#ifdef __WINDOWS__ + if ((op == ZT1_VIRTUAL_NETWORK_CONFIG_OPERATION_DESTROY)&&(winInstanceId.length() > 0)) + WindowsEthernetTap::deletePersistentTapDevice(_homePath.c_str(),winInstanceId.c_str()); +#endif } break; } -- cgit v1.2.3