aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/manager
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2021-08-09 13:39:50 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2021-08-09 13:39:50 +0200
commit14a4cc5dbfc7b815f2363af360f2f9c9b71463c2 (patch)
tree22b8c47e810dd4350f3235339c82eaac6b9543ef /manager
parentmanager: track externally created tunnels (diff)
downloadwireguard-windows-14a4cc5dbfc7b815f2363af360f2f9c9b71463c2.tar.xz
wireguard-windows-14a4cc5dbfc7b815f2363af360f2f9c9b71463c2.zip
manager: do both wgnt and wintun cleanups
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'manager')
-rw-r--r--manager/interfacecleanup.go59
1 files changed, 28 insertions, 31 deletions
diff --git a/manager/interfacecleanup.go b/manager/interfacecleanup.go
index 32976b79..007c94d7 100644
--- a/manager/interfacecleanup.go
+++ b/manager/interfacecleanup.go
@@ -13,7 +13,6 @@ import (
"golang.org/x/sys/windows/svc/mgr"
"golang.zx2c4.com/wireguard/tun"
"golang.zx2c4.com/wireguard/tun/wintun"
- "golang.zx2c4.com/wireguard/windows/conf"
"golang.zx2c4.com/wireguard/windows/driver"
"golang.zx2c4.com/wireguard/windows/services"
)
@@ -25,37 +24,35 @@ func cleanupStaleNetworkInterfaces() {
}
defer m.Disconnect()
- if conf.AdminBool("ExperimentalKernelDriver") {
- driver.DefaultPool.DeleteMatchingAdapters(func(wintun *driver.Adapter) bool {
- interfaceName, err := wintun.Name()
- if err != nil {
- log.Printf("Removing network adapter because determining interface name failed: %v", err)
- return true
- }
- serviceName, err := services.ServiceNameOfTunnel(interfaceName)
- if err != nil {
- log.Printf("Removing network adapter ‘%s’ because determining tunnel service name failed: %v", interfaceName, err)
- return true
- }
- service, err := m.OpenService(serviceName)
- if err == windows.ERROR_SERVICE_DOES_NOT_EXIST {
- log.Printf("Removing network adapter ‘%s’ because no service for it exists", interfaceName)
- return true
- } else if err != nil {
- return false
- }
- defer service.Close()
- status, err := service.Query()
- if err != nil {
- return false
- }
- if status.State == svc.Stopped {
- log.Printf("Removing network adapter ‘%s’ because its service is stopped", interfaceName)
- return true
- }
+ driver.DefaultPool.DeleteMatchingAdapters(func(wintun *driver.Adapter) bool {
+ interfaceName, err := wintun.Name()
+ if err != nil {
+ log.Printf("Removing network adapter because determining interface name failed: %v", err)
+ return true
+ }
+ serviceName, err := services.ServiceNameOfTunnel(interfaceName)
+ if err != nil {
+ log.Printf("Removing network adapter ‘%s’ because determining tunnel service name failed: %v", interfaceName, err)
+ return true
+ }
+ service, err := m.OpenService(serviceName)
+ if err == windows.ERROR_SERVICE_DOES_NOT_EXIST {
+ log.Printf("Removing network adapter ‘%s’ because no service for it exists", interfaceName)
+ return true
+ } else if err != nil {
return false
- })
- }
+ }
+ defer service.Close()
+ status, err := service.Query()
+ if err != nil {
+ return false
+ }
+ if status.State == svc.Stopped {
+ log.Printf("Removing network adapter ‘%s’ because its service is stopped", interfaceName)
+ return true
+ }
+ return false
+ })
tun.WintunPool.DeleteMatchingAdapters(func(adapter *wintun.Adapter) bool {
interfaceName, err := adapter.Name()