diff options
Diffstat (limited to 'tunnel/service.go')
-rw-r--r-- | tunnel/service.go | 6 |
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) |