From e1ac4247ff30e68e7f9aa820fe4d1f5623bf54ee Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Mon, 14 May 2018 04:21:20 +0200 Subject: [PATCH] libwg-go: make changes for recent go code Signed-off-by: Jason A. Donenfeld --- app/tools/libwg-go/Makefile | 4 +--- app/tools/libwg-go/api-android.go | 15 ++++++++------- app/tools/wireguard | 2 +- app/tools/wireguard-go | 2 +- 4 files changed, 11 insertions(+), 12 deletions(-) diff --git a/app/tools/libwg-go/Makefile b/app/tools/libwg-go/Makefile index 3daad830..a7828e79 100644 --- a/app/tools/libwg-go/Makefile +++ b/app/tools/libwg-go/Makefile @@ -2,9 +2,7 @@ # # Copyright © 2018 Jason A. Donenfeld . All Rights Reserved. -containing = $(foreach v,$2,$(if $(findstring $1,$v),$v)) -FILES := $(wildcard ../wireguard-go/*/*.go) $(wildcard ../wireguard-go/*.go) -FILES := $(filter-out %/main.go $(filter-out %_linux.go,$(call containing,_,$(FILES))),$(FILES)) +FILES := $(filter-out %/main.go,$(wildcard ../wireguard-go/*/*.go) $(wildcard ../wireguard-go/*.go)) NDK_GO_ARCH_MAP_x86 := 386 NDK_GO_ARCH_MAP_x86_64 := amd64 diff --git a/app/tools/libwg-go/api-android.go b/app/tools/libwg-go/api-android.go index 63551512..5ea57a9d 100644 --- a/app/tools/libwg-go/api-android.go +++ b/app/tools/libwg-go/api-android.go @@ -10,13 +10,14 @@ package main import "C" import ( + "./rwcancel" "bufio" + "golang.org/x/sys/unix" "io/ioutil" "log" "math" "os" "strings" - "syscall" ) type AndroidLogger struct { @@ -52,21 +53,19 @@ func wgTurnOn(ifnameRef string, tun_fd int32, settings string) int32 { events: make(chan TUNEvent, 5), errors: make(chan error, 5), nopi: true, + statusListenersShutdown: make(chan struct{}), } var err error - err = syscall.SetNonblock(int(tun_fd), true) - if err != nil { - logger.Error.Println(err) - return -1 - } - tun.closingReader, tun.closingWriter, err = os.Pipe() + tun.fdCancel, err = rwcancel.NewRWCancel(int(tun_fd)) if err != nil { + unix.Close(int(tun_fd)) logger.Error.Println(err) return -1 } name, err := tun.Name() if err != nil { + unix.Close(int(tun_fd)) logger.Error.Println(err) return -1 } @@ -77,6 +76,7 @@ func wgTurnOn(ifnameRef string, tun_fd int32, settings string) int32 { bufferedSettings := bufio.NewReadWriter(bufio.NewReader(strings.NewReader(settings)), bufio.NewWriter(ioutil.Discard)) setError := ipcSetOperation(device, bufferedSettings) if setError != nil { + unix.Close(int(tun_fd)) logger.Error.Println(setError) return -1 } @@ -91,6 +91,7 @@ func wgTurnOn(ifnameRef string, tun_fd int32, settings string) int32 { } } if i == math.MaxInt32 { + unix.Close(int(tun_fd)) return -1 } tunnelHandles[i] = device diff --git a/app/tools/wireguard b/app/tools/wireguard index 7cc26683..6b4a340f 160000 --- a/app/tools/wireguard +++ b/app/tools/wireguard @@ -1 +1 @@ -Subproject commit 7cc2668355519ca78c6585197ed15f93b12891f1 +Subproject commit 6b4a340f027d7978bb29cd7da672a20a0a070169 diff --git a/app/tools/wireguard-go b/app/tools/wireguard-go index 233f079a..a62c770a 160000 --- a/app/tools/wireguard-go +++ b/app/tools/wireguard-go @@ -1 +1 @@ -Subproject commit 233f079a9479279d2aab68f4accb139ee87ad664 +Subproject commit a62c770a99e830f220314d1bc779e8818d4ecc7f