aboutsummaryrefslogtreecommitdiff
path: root/tun/wintun/nci
diff options
context:
space:
mode:
authorSimon Rozman <simon@rozman.si>2020-07-22 09:15:49 +0200
committerSimon Rozman <simon@rozman.si>2020-11-07 12:46:35 +0100
commit3e08b8aee0f6ae038f6316ca1bb84e5214db318f (patch)
tree34681cb00b6b22bded95e0df6ed271de18983646 /tun/wintun/nci
parent5ca1218a5c16fb9b5e99b61c0b5758f66087e2e4 (diff)
downloadwireguard-go-3e08b8aee0f6ae038f6316ca1bb84e5214db318f.tar.gz
wireguard-go-3e08b8aee0f6ae038f6316ca1bb84e5214db318f.zip
wintun: migrate to wintun.dll API
Rather than having every application using Wintun driver reinvent the wheel, the Wintun device/adapter/interface management has been moved from wireguard-go to wintun.dll deployed with Wintun itself. Signed-off-by: Simon Rozman <simon@rozman.si>
Diffstat (limited to 'tun/wintun/nci')
-rw-r--r--tun/wintun/nci/mksyscall.go8
-rw-r--r--tun/wintun/nci/nci_windows.go28
-rw-r--r--tun/wintun/nci/zsyscall_windows.go60
3 files changed, 0 insertions, 96 deletions
diff --git a/tun/wintun/nci/mksyscall.go b/tun/wintun/nci/mksyscall.go
deleted file mode 100644
index 129e015..0000000
--- a/tun/wintun/nci/mksyscall.go
+++ /dev/null
@@ -1,8 +0,0 @@
-/* SPDX-License-Identifier: MIT
- *
- * Copyright (C) 2020 WireGuard LLC. All Rights Reserved.
- */
-
-package nci
-
-//go:generate go run golang.org/x/sys/windows/mkwinsyscall -output zsyscall_windows.go nci_windows.go
diff --git a/tun/wintun/nci/nci_windows.go b/tun/wintun/nci/nci_windows.go
deleted file mode 100644
index dc9733c..0000000
--- a/tun/wintun/nci/nci_windows.go
+++ /dev/null
@@ -1,28 +0,0 @@
-/* SPDX-License-Identifier: MIT
- *
- * Copyright (C) 2020 WireGuard LLC. All Rights Reserved.
- */
-
-package nci
-
-import "golang.org/x/sys/windows"
-
-//sys nciSetConnectionName(guid *windows.GUID, newName *uint16) (ret error) = nci.NciSetConnectionName
-//sys nciGetConnectionName(guid *windows.GUID, destName *uint16, inDestNameBytes uint32, outDestNameBytes *uint32) (ret error) = nci.NciGetConnectionName
-
-func SetConnectionName(guid *windows.GUID, newName string) error {
- newName16, err := windows.UTF16PtrFromString(newName)
- if err != nil {
- return err
- }
- return nciSetConnectionName(guid, newName16)
-}
-
-func ConnectionName(guid *windows.GUID) (string, error) {
- var name [0x400]uint16
- err := nciGetConnectionName(guid, &name[0], uint32(len(name)*2), nil)
- if err != nil {
- return "", err
- }
- return windows.UTF16ToString(name[:]), nil
-}
diff --git a/tun/wintun/nci/zsyscall_windows.go b/tun/wintun/nci/zsyscall_windows.go
deleted file mode 100644
index 2a7b79e..0000000
--- a/tun/wintun/nci/zsyscall_windows.go
+++ /dev/null
@@ -1,60 +0,0 @@
-// Code generated by 'go generate'; DO NOT EDIT.
-
-package nci
-
-import (
- "syscall"
- "unsafe"
-
- "golang.org/x/sys/windows"
-)
-
-var _ unsafe.Pointer
-
-// Do the interface allocations only once for common
-// Errno values.
-const (
- errnoERROR_IO_PENDING = 997
-)
-
-var (
- errERROR_IO_PENDING error = syscall.Errno(errnoERROR_IO_PENDING)
-)
-
-// errnoErr returns common boxed Errno values, to prevent
-// allocations at runtime.
-func errnoErr(e syscall.Errno) error {
- switch e {
- case 0:
- return nil
- case errnoERROR_IO_PENDING:
- return errERROR_IO_PENDING
- }
- // TODO: add more here, after collecting data on the common
- // error values see on Windows. (perhaps when running
- // all.bat?)
- return e
-}
-
-var (
- modnci = windows.NewLazySystemDLL("nci.dll")
-
- procNciSetConnectionName = modnci.NewProc("NciSetConnectionName")
- procNciGetConnectionName = modnci.NewProc("NciGetConnectionName")
-)
-
-func nciSetConnectionName(guid *windows.GUID, newName *uint16) (ret error) {
- r0, _, _ := syscall.Syscall(procNciSetConnectionName.Addr(), 2, uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(newName)), 0)
- if r0 != 0 {
- ret = syscall.Errno(r0)
- }
- return
-}
-
-func nciGetConnectionName(guid *windows.GUID, destName *uint16, inDestNameBytes uint32, outDestNameBytes *uint32) (ret error) {
- r0, _, _ := syscall.Syscall6(procNciGetConnectionName.Addr(), 4, uintptr(unsafe.Pointer(guid)), uintptr(unsafe.Pointer(destName)), uintptr(inDestNameBytes), uintptr(unsafe.Pointer(outDestNameBytes)), 0, 0)
- if r0 != 0 {
- ret = syscall.Errno(r0)
- }
- return
-}