diff options
| -rw-r--r-- | ios/PacketTunnel/WireguardDevice.swift | 10 | ||||
| -rw-r--r-- | ios/wireguard-go-bridge/api-ios.go | 8 | ||||
| -rw-r--r-- | ios/wireguard-go-bridge/go.mod | 2 | ||||
| -rw-r--r-- | ios/wireguard-go-bridge/go.sum | 12 | ||||
| -rw-r--r-- | ios/wireguard-go-bridge/wireguard.h | 5 |
5 files changed, 11 insertions, 26 deletions
diff --git a/ios/PacketTunnel/WireguardDevice.swift b/ios/PacketTunnel/WireguardDevice.swift index bcd07fbf05..efb62b526c 100644 --- a/ios/PacketTunnel/WireguardDevice.swift +++ b/ios/PacketTunnel/WireguardDevice.swift @@ -192,7 +192,7 @@ class WireguardDevice { } let handle = configuration.baseline().toRawWireguardConfigString() - .withGoString { wgTurnOn($0, self.tunFd) } + .withCString { wgTurnOn($0, self.tunFd) } if handle < 0 { return .failure(.start(handle)) @@ -239,7 +239,7 @@ class WireguardDevice { guard !commands.isEmpty else { return } _ = commands.toRawWireguardConfigString() - .withGoString { wgSetConfig(handle, $0) } + .withCString { wgSetConfig(handle, $0) } } // MARK: - Network monitoring @@ -314,12 +314,6 @@ enum WireguardLogLevel: Int32 { } } -private extension String { - func withGoString<R>(_ block: (_ goString: gostring_t) throws -> R) rethrows -> R { - return try withCString { try block(gostring_t(p: $0, n: utf8.count)) } - } -} - extension Network.NWPath.Status: CustomDebugStringConvertible { public var debugDescription: String { var output = "NWPath.Status." diff --git a/ios/wireguard-go-bridge/api-ios.go b/ios/wireguard-go-bridge/api-ios.go index 55e1b0daa9..93dd323df7 100644 --- a/ios/wireguard-go-bridge/api-ios.go +++ b/ios/wireguard-go-bridge/api-ios.go @@ -84,7 +84,7 @@ func wgSetLogger(loggerFn uintptr) { } //export wgTurnOn -func wgTurnOn(settings string, tunFd int32) int32 { +func wgTurnOn(settings *C.char, tunFd int32) int32 { logger := &device.Logger{ Debug: log.New(&CLogger{level: 0}, "", 0), Info: log.New(&CLogger{level: 1}, "", 0), @@ -104,7 +104,7 @@ func wgTurnOn(settings string, tunFd int32) int32 { logger.Info.Println("Attaching to interface") device := device.NewDevice(tun, logger) - setError := device.IpcSetOperation(bufio.NewReader(strings.NewReader(settings))) + setError := device.IpcSetOperation(bufio.NewReader(strings.NewReader(C.GoString(settings)))) if setError != nil { logger.Error.Println(setError) return -1 @@ -137,12 +137,12 @@ func wgTurnOff(tunnelHandle int32) { } //export wgSetConfig -func wgSetConfig(tunnelHandle int32, settings string) int64 { +func wgSetConfig(tunnelHandle int32, settings *C.char) int64 { device, ok := tunnelHandles[tunnelHandle] if !ok { return 0 } - err := device.IpcSetOperation(bufio.NewReader(strings.NewReader(settings))) + err := device.IpcSetOperation(bufio.NewReader(strings.NewReader(C.GoString(settings)))) if err != nil { device.Error.Println(err) return err.ErrorCode() diff --git a/ios/wireguard-go-bridge/go.mod b/ios/wireguard-go-bridge/go.mod index 7931a6157f..eddf20c4e6 100644 --- a/ios/wireguard-go-bridge/go.mod +++ b/ios/wireguard-go-bridge/go.mod @@ -5,6 +5,6 @@ go 1.13 require ( golang.org/x/crypto v0.0.0-20200117160349-530e935923ad // indirect golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa // indirect - golang.org/x/sys v0.0.0-20200121082415-34d275377bf9 + golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9 golang.zx2c4.com/wireguard v0.0.20200121 ) diff --git a/ios/wireguard-go-bridge/go.sum b/ios/wireguard-go-bridge/go.sum index 40b3e39bcd..74b3b2837c 100644 --- a/ios/wireguard-go-bridge/go.sum +++ b/ios/wireguard-go-bridge/go.sum @@ -1,30 +1,22 @@ golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc h1:c0o/qxkaO2LF5t6fQrT4b5hzyggAkLLlCUjqfRxd8Q4= golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191105034135-c7e5f84aec59 h1:PyXRxSVbvzDGuqYXjHndV7xDzJ7w2K8KD9Ef8GB7KOE= -golang.org/x/crypto v0.0.0-20191105034135-c7e5f84aec59/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200117160349-530e935923ad h1:Jh8cai0fqIK+f6nG0UgPW5wFk8wmiMhM3AyciDBdtQg= golang.org/x/crypto v0.0.0-20200117160349-530e935923ad/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20191003171128-d98b1b443823 h1:Ypyv6BNJh07T1pUSrehkLemqPKXhus2MkfktJ91kRh4= golang.org/x/net v0.0.0-20191003171128-d98b1b443823/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191105084925-a882066a44e0 h1:QPlSTtPE2k6PZPasQUbzuK3p9JbS+vMXYVto8g/yrsg= -golang.org/x/net v0.0.0-20191105084925-a882066a44e0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa h1:F+8P+gmewFQYRk6JoLQLwjBCTu3mcIURZfNkVweuRKA= golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191003212358-c178f38b412c h1:6Zx7DRlKXf79yfxuQ/7GqV3w2y7aDsk6bGg0MzF5RVU= golang.org/x/sys v0.0.0-20191003212358-c178f38b412c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191104094858-e8c54fb511f6 h1:ZJUmhYTp8GbGC0ViZRc2U+MIYQ8xx9MscsdXnclfIhw= -golang.org/x/sys v0.0.0-20191104094858-e8c54fb511f6/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200121082415-34d275377bf9 h1:N19i1HjUnR7TF7rMt8O4p3dLvqvmYyzB6ifMFmrbY50= -golang.org/x/sys v0.0.0-20200121082415-34d275377bf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9 h1:1/DFK4b7JH8DmkqhUk48onnSfrPzImPoVxuomtbT2nk= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.zx2c4.com/wireguard v0.0.20191013-0.20191030132932-4cdf805b29b1 h1:KxtBKNgJUQG8vwZzJKkwBGOcqp95xLu6A6KIMde1kl0= -golang.zx2c4.com/wireguard v0.0.20191013-0.20191030132932-4cdf805b29b1/go.mod h1:P2HsVp8SKwZEufsnezXZA4GRX/T49/HlU7DGuelXsU4= golang.zx2c4.com/wireguard v0.0.20200121 h1:vcswa5Q6f+sylDfjqyrVNNrjsFUUbPsgAQTBCAg/Qf8= golang.zx2c4.com/wireguard v0.0.20200121/go.mod h1:P2HsVp8SKwZEufsnezXZA4GRX/T49/HlU7DGuelXsU4= diff --git a/ios/wireguard-go-bridge/wireguard.h b/ios/wireguard-go-bridge/wireguard.h index e8e451b5e3..5c30ee91bd 100644 --- a/ios/wireguard-go-bridge/wireguard.h +++ b/ios/wireguard-go-bridge/wireguard.h @@ -10,13 +10,12 @@ #include <stdint.h> #include <stdbool.h> -typedef struct { const char *p; size_t n; } gostring_t; typedef void(*logger_fn_t)(int level, const char *msg); extern void wgEnableRoaming(bool enabled); extern void wgSetLogger(logger_fn_t logger_fn); -extern int wgTurnOn(gostring_t settings, int32_t tun_fd); +extern int wgTurnOn(const char *settings, int32_t tun_fd); extern void wgTurnOff(int handle); -extern int64_t wgSetConfig(int handle, gostring_t settings); +extern int64_t wgSetConfig(int handle, const char *settings); extern char *wgGetConfig(int handle); extern void wgBumpSockets(int handle); extern const char *wgVersion(); |
