diff options
author | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-11-06 15:46:44 +0100 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2018-11-06 16:27:25 +0100 |
commit | 0a55a284d5edcb792848448b5415e4faea437038 (patch) | |
tree | 7c12f8a044410ffeabf31fe217359ceab847c45f /wireguard-go-bridge/src/api-ios.go | |
parent | Xcode: enable more warnings (diff) | |
download | wireguard-apple-0a55a284d5edcb792848448b5415e4faea437038.tar.xz wireguard-apple-0a55a284d5edcb792848448b5415e4faea437038.zip |
wireguard-go-bridge: take fd instead of fnptr
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Diffstat (limited to 'wireguard-go-bridge/src/api-ios.go')
-rw-r--r-- | wireguard-go-bridge/src/api-ios.go | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/wireguard-go-bridge/src/api-ios.go b/wireguard-go-bridge/src/api-ios.go index 07dd45a..67ce785 100644 --- a/wireguard-go-bridge/src/api-ios.go +++ b/wireguard-go-bridge/src/api-ios.go @@ -15,6 +15,7 @@ import "C" import ( "bufio" + "errors" "git.zx2c4.com/wireguard-go/tun" "golang.org/x/sys/unix" "io/ioutil" @@ -25,7 +26,6 @@ import ( "runtime" "strings" "unsafe" - "errors" ) var loggerFunc unsafe.Pointer @@ -75,7 +75,7 @@ func wgSetLogger(loggerFn uintptr) { } //export wgTurnOn -func wgTurnOn(ifnameRef string, settings string, mtu uint16, readFn uintptr, writeFn uintptr, ctx uintptr) int32 { +func wgTurnOn(ifnameRef string, settings string, tunFd int32) int32 { interfaceName := string([]byte(ifnameRef)) logger := &Logger{ @@ -86,12 +86,14 @@ func wgTurnOn(ifnameRef string, settings string, mtu uint16, readFn uintptr, wri logger.Debug.Println("Debug log enabled") - tun := tun.CreateTUN(mtu, unsafe.Pointer(readFn), unsafe.Pointer(writeFn), unsafe.Pointer(ctx)) + tun, _, err := tun.CreateTUNFromFD(int(tunFd)) + if err != nil { + logger.Error.Println(err) + return -1 + } logger.Info.Println("Attaching to interface") device := NewDevice(tun, logger) - logger.Debug.Println("Interface has MTU", device.tun.mtu) - bufferedSettings := bufio.NewReadWriter(bufio.NewReader(strings.NewReader(settings)), bufio.NewWriter(ioutil.Discard)) setError := ipcSetOperation(device, bufferedSettings) if setError != nil { |