From cc5131d878baef6f0c1f163eb7adac9c9ed0eb40 Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Thu, 29 Aug 2019 08:01:29 -0600 Subject: winipcfg: use upstream helper function for elevation test Signed-off-by: Jason A. Donenfeld --- tunnel/winipcfg/winipcfg_test.go | 25 +++++++++---------------- 1 file changed, 9 insertions(+), 16 deletions(-) (limited to 'tunnel/winipcfg/winipcfg_test.go') diff --git a/tunnel/winipcfg/winipcfg_test.go b/tunnel/winipcfg/winipcfg_test.go index 829d2675..36ef2849 100644 --- a/tunnel/winipcfg/winipcfg_test.go +++ b/tunnel/winipcfg/winipcfg_test.go @@ -27,7 +27,6 @@ import ( "strings" "testing" "time" - "unsafe" "golang.org/x/sys/windows" ) @@ -56,19 +55,13 @@ var ( } ) -func runningAsAdmin() bool { +func runningElevated() bool { process, err := windows.OpenCurrentProcessToken() if err != nil { return false } defer process.Close() - var isElevated uint32 - var outLen uint32 - err = windows.GetTokenInformation(process, windows.TokenElevation, (*byte)(unsafe.Pointer(&isElevated)), uint32(unsafe.Sizeof(isElevated)), &outLen) - if err != nil { - return false - } - return outLen == uint32(unsafe.Sizeof(isElevated)) && isElevated != 0 + return process.IsElevated() } func getTestInterface() (*IPAdapterAddresses, error) { @@ -198,7 +191,7 @@ func TestIPChangeMetric(t *testing.T) { t.Errorf("getTestIPInterface() returned an error: %v", err) return } - if !runningAsAdmin() { + if !runningElevated() { t.Errorf("%s requires elevation", t.Name()) return } @@ -288,7 +281,7 @@ func TestIPChangeMTU(t *testing.T) { t.Errorf("getTestIPInterface() returned an error: %v", err) return } - if !runningAsAdmin() { + if !runningElevated() { t.Errorf("%s requires elevation", t.Name()) return } @@ -380,7 +373,7 @@ func TestAddDeleteIPAddress(t *testing.T) { t.Errorf("getTestInterface() returned an error: %v", err) return } - if !runningAsAdmin() { + if !runningElevated() { t.Errorf("%s requires elevation", t.Name()) return } @@ -494,7 +487,7 @@ func TestAddDeleteRoute(t *testing.T) { t.Errorf("getTestInterface() returned an error: %v", err) return } - if !runningAsAdmin() { + if !runningElevated() { t.Errorf("%s requires elevation", t.Name()) return } @@ -588,7 +581,7 @@ func TestFlushDNS(t *testing.T) { t.Errorf("getTestInterface() returned an error: %v", err) return } - if !runningAsAdmin() { + if !runningElevated() { t.Errorf("%s requires elevation", t.Name()) return } @@ -631,7 +624,7 @@ func TestAddDNS(t *testing.T) { t.Errorf("getTestInterface() returned an error: %v", err) return } - if !runningAsAdmin() { + if !runningElevated() { t.Errorf("%s requires elevation", t.Name()) return } @@ -675,7 +668,7 @@ func TestSetDNS(t *testing.T) { t.Errorf("getTestInterface() returned an error: %v", err) return } - if !runningAsAdmin() { + if !runningElevated() { t.Errorf("%s requires elevation", t.Name()) return } -- cgit v1.2.3-59-g8ed1b