diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-08-10 02:47:35 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2021-08-10 02:47:35 +0200 |
commit | b60c9535b910bf8af7be7643a1edbb9ba5f773ef (patch) | |
tree | 45ee6945e606adeb11ed6c08f326ea96c326a624 | |
parent | version: bump (diff) | |
download | wireguard-windows-b60c9535b910bf8af7be7643a1edbb9ba5f773ef.tar.xz wireguard-windows-b60c9535b910bf8af7be7643a1edbb9ba5f773ef.zip |
tunnel: execute *down commands for wgnt
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r-- | tunnel/service.go | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/tunnel/service.go b/tunnel/service.go index fc3c0f07..14d03b5f 100644 --- a/tunnel/service.go +++ b/tunnel/service.go @@ -94,7 +94,7 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest, } }() - if logErr == nil && dev != nil && config != nil { + if logErr == nil && (dev != nil || adapter != nil) && config != nil { logErr = runScriptCommand(config.Interface.PreDown, config.Name) } if watcher != nil { @@ -106,7 +106,10 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest, if dev != nil { dev.Close() } - if logErr == nil && dev != nil && config != nil { + if adapter != nil { + adapter.Delete() + } + if logErr == nil && (dev != nil || adapter != nil) && config != nil { _ = runScriptCommand(config.Interface.PostDown, config.Name) } stopIt <- true @@ -200,7 +203,6 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest, serviceError = services.ErrorCreateNetworkAdapter return } - defer adapter.Delete() luid = adapter.LUID() driverVersion, err := driver.RunningVersion() if err != nil { @@ -293,6 +295,7 @@ func (service *tunnelService) Execute(args []string, r <-chan svc.ChangeRequest, } }() } else { + log.Println("Setting interface configuration") err = adapter.SetConfiguration(config.ToDriverConfiguration()) if err != nil { serviceError = services.ErrorDeviceSetConfig |