aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/manager
diff options
context:
space:
mode:
authorJason A. Donenfeld <Jason@zx2c4.com>2021-09-11 23:24:22 +0200
committerJason A. Donenfeld <Jason@zx2c4.com>2021-10-16 22:55:24 -0600
commit548405e21b87d982a2d2094ce565bac5ac3c308a (patch)
tree6843727e22985d3cd08cd76ee47868d2e53fd2cc /manager
parentmanager: remove legacy store support (diff)
downloadwireguard-windows-548405e21b87d982a2d2094ce565bac5ac3c308a.tar.xz
wireguard-windows-548405e21b87d982a2d2094ce565bac5ac3c308a.zip
global: remove wireguard-go/Wintun implementation
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'manager')
-rw-r--r--manager/ipc_server.go74
-rw-r--r--manager/ipc_uapi.go71
-rw-r--r--manager/service.go6
-rw-r--r--manager/tunneltracker.go1
4 files changed, 18 insertions, 134 deletions
diff --git a/manager/ipc_server.go b/manager/ipc_server.go
index e88ab7e4..504b5cce 100644
--- a/manager/ipc_server.go
+++ b/manager/ipc_server.go
@@ -47,64 +47,26 @@ func (s *ManagerService) StoredConfig(tunnelName string) (*conf.Config, error) {
}
func (s *ManagerService) RuntimeConfig(tunnelName string) (*conf.Config, error) {
- if !conf.AdminBool("UseUserspaceImplementation") {
- storedConfig, err := conf.LoadFromName(tunnelName)
- if err != nil {
- return nil, err
- }
- driverAdapter, err := findDriverAdapter(tunnelName)
- if err != nil {
- return nil, err
- }
- runtimeConfig, err := driverAdapter.Configuration()
- if err != nil {
- driverAdapter.Unlock()
- releaseDriverAdapter(tunnelName)
- return nil, err
- }
- conf := conf.FromDriverConfiguration(runtimeConfig, storedConfig)
+ storedConfig, err := conf.LoadFromName(tunnelName)
+ if err != nil {
+ return nil, err
+ }
+ driverAdapter, err := findDriverAdapter(tunnelName)
+ if err != nil {
+ return nil, err
+ }
+ runtimeConfig, err := driverAdapter.Configuration()
+ if err != nil {
driverAdapter.Unlock()
- if s.elevatedToken == 0 {
- conf.Redact()
- }
- return conf, nil
- } else {
- storedConfig, err := conf.LoadFromName(tunnelName)
- if err != nil {
- return nil, err
- }
- pipe, err := connectTunnelServicePipe(tunnelName)
- if err != nil {
- return nil, err
- }
- pipe.SetDeadline(time.Now().Add(time.Second * 2))
- _, err = pipe.Write([]byte("get=1\n\n"))
- if err == windows.ERROR_NO_DATA {
- log.Println("IPC pipe closed unexpectedly, so reopening")
- pipe.Unlock()
- disconnectTunnelServicePipe(tunnelName)
- pipe, err = connectTunnelServicePipe(tunnelName)
- if err != nil {
- return nil, err
- }
- pipe.SetDeadline(time.Now().Add(time.Second * 2))
- _, err = pipe.Write([]byte("get=1\n\n"))
- }
- if err != nil {
- pipe.Unlock()
- disconnectTunnelServicePipe(tunnelName)
- return nil, err
- }
- conf, err := conf.FromUAPI(pipe, storedConfig)
- pipe.Unlock()
- if err != nil {
- return nil, err
- }
- if s.elevatedToken == 0 {
- conf.Redact()
- }
- return conf, nil
+ releaseDriverAdapter(tunnelName)
+ return nil, err
}
+ conf := conf.FromDriverConfiguration(runtimeConfig, storedConfig)
+ driverAdapter.Unlock()
+ if s.elevatedToken == 0 {
+ conf.Redact()
+ }
+ return conf, nil
}
func (s *ManagerService) Start(tunnelName string) error {
diff --git a/manager/ipc_uapi.go b/manager/ipc_uapi.go
deleted file mode 100644
index 85477125..00000000
--- a/manager/ipc_uapi.go
+++ /dev/null
@@ -1,71 +0,0 @@
-/* SPDX-License-Identifier: MIT
- *
- * Copyright (C) 2019-2021 WireGuard LLC. All Rights Reserved.
- */
-
-package manager
-
-import (
- "net"
- "sync"
-
- "golang.org/x/sys/windows"
- "golang.zx2c4.com/wireguard/ipc/winpipe"
-
- "golang.zx2c4.com/wireguard/windows/services"
-)
-
-type connectedTunnel struct {
- net.Conn
- sync.Mutex
-}
-
-var connectedTunnelServicePipes = make(map[string]*connectedTunnel)
-var connectedTunnelServicePipesLock sync.RWMutex
-
-func connectTunnelServicePipe(tunnelName string) (*connectedTunnel, error) {
- connectedTunnelServicePipesLock.RLock()
- pipe, ok := connectedTunnelServicePipes[tunnelName]
- if ok {
- pipe.Lock()
- connectedTunnelServicePipesLock.RUnlock()
- return pipe, nil
- }
- connectedTunnelServicePipesLock.RUnlock()
- connectedTunnelServicePipesLock.Lock()
- defer connectedTunnelServicePipesLock.Unlock()
- pipe, ok = connectedTunnelServicePipes[tunnelName]
- if ok {
- pipe.Lock()
- return pipe, nil
- }
- pipePath, err := services.PipePathOfTunnel(tunnelName)
- if err != nil {
- return nil, err
- }
- localSystem, err := windows.CreateWellKnownSid(windows.WinLocalSystemSid)
- if err != nil {
- return nil, err
- }
- pipe = &connectedTunnel{}
- pipe.Conn, err = winpipe.Dial(pipePath, nil, &winpipe.DialConfig{ExpectedOwner: localSystem})
- if err != nil {
- return nil, err
- }
- connectedTunnelServicePipes[tunnelName] = pipe
- pipe.Lock()
- return pipe, nil
-}
-
-func disconnectTunnelServicePipe(tunnelName string) {
- connectedTunnelServicePipesLock.Lock()
- defer connectedTunnelServicePipesLock.Unlock()
- pipe, ok := connectedTunnelServicePipes[tunnelName]
- if !ok {
- return
- }
- pipe.Lock()
- pipe.Close()
- delete(connectedTunnelServicePipes, tunnelName)
- pipe.Unlock()
-}
diff --git a/manager/service.go b/manager/service.go
index e5dcf92d..af9004de 100644
--- a/manager/service.go
+++ b/manager/service.go
@@ -17,7 +17,6 @@ import (
"golang.org/x/sys/windows"
"golang.org/x/sys/windows/svc"
- "golang.zx2c4.com/wireguard/tun/wintun"
"golang.zx2c4.com/wireguard/windows/conf"
"golang.zx2c4.com/wireguard/windows/elevate"
@@ -259,11 +258,6 @@ func (service *managerService) Execute(args []string, r <-chan svc.ChangeRequest
}()
}
- time.AfterFunc(time.Second*15, func() {
- if !conf.AdminBool("UseUserspaceImplementation") {
- wintun.Uninstall()
- }
- })
go checkForUpdates()
var sessionsPointer *windows.WTS_SESSION_INFO
diff --git a/manager/tunneltracker.go b/manager/tunneltracker.go
index 6b5b1a02..103388f2 100644
--- a/manager/tunneltracker.go
+++ b/manager/tunneltracker.go
@@ -260,7 +260,6 @@ func trackTunnelService(tunnelName string, service *mgr.Service) {
IPCServerNotifyTunnelChange(tunnelName, TunnelStopped, fmt.Errorf("Unable to continue monitoring service, so stopping: %w", err))
service.Control(svc.Stop)
}
- disconnectTunnelServicePipe(tunnelName)
}
func trackExistingTunnels() error {