aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/tunnel/service.go
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2019-05-22 11:46:41 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2019-05-22 15:26:54 +0200
commit3b1d3b857d047ad7b1368964ab66beaa5fc4a501 (patch)
tree2ad5f68d509a1dbce4c886fb5471b3a3e1d5d729 /tunnel/service.go
parentmanager: fix error string find and replace mistake (diff)
downloadwireguard-windows-3b1d3b857d047ad7b1368964ab66beaa5fc4a501.tar.xz
wireguard-windows-3b1d3b857d047ad7b1368964ab66beaa5fc4a501.zip
tunnel: remove routes before destroying interface
Diffstat (limited to 'tunnel/service.go')
-rw-r--r--tunnel/service.go6
1 files changed, 5 insertions, 1 deletions
diff --git a/tunnel/service.go b/tunnel/service.go
index e93a2c40..ef947ba5 100644
--- a/tunnel/service.go
+++ b/tunnel/service.go
@@ -39,6 +39,7 @@ func (service *Service) Execute(args []string, r <-chan svc.ChangeRequest, chang
var dev *device.Device
var uapi net.Listener
var routeChangeCallback *winipcfg.RouteChangeCallback
+ var nativeTun *tun.NativeTun
var err error
serviceError := services.ErrorSuccess
@@ -85,6 +86,9 @@ func (service *Service) Execute(args []string, r <-chan svc.ChangeRequest, chang
if routeChangeCallback != nil {
routeChangeCallback.Unregister()
}
+ if nativeTun != nil {
+ unconfigureInterface(nativeTun)
+ }
if uapi != nil {
uapi.Close()
}
@@ -142,7 +146,7 @@ func (service *Service) Execute(args []string, r <-chan svc.ChangeRequest, chang
return
}
conf.Name = realInterfaceName
- nativeTun := wintun.(*tun.NativeTun)
+ nativeTun = wintun.(*tun.NativeTun)
log.Println("Enabling firewall rules")
err = enableFirewall(conf, nativeTun)