summaryrefslogtreecommitdiff
path: root/service
diff options
context:
space:
mode:
Diffstat (limited to 'service')
-rw-r--r--service/OneService.cpp7
1 files changed, 7 insertions, 0 deletions
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;
}