summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAndrej Mihajlov <and@mullvad.net>2020-05-18 18:46:49 +0200
committerAndrej Mihajlov <and@mullvad.net>2020-05-18 18:46:49 +0200
commit5d3f86a2cfc78c5014dceacba4f0011e7ed7875f (patch)
tree39fbc4b7f7cb954409bb9cff1f7f35cadcae6652
parent8a37a091cb03ca6a7b51e930e319378c1f80f45e (diff)
parent26be88273410dc4ef15eda988401635e3b719ccd (diff)
downloadmullvadvpn-5d3f86a2cfc78c5014dceacba4f0011e7ed7875f.tar.xz
mullvadvpn-5d3f86a2cfc78c5014dceacba4f0011e7ed7875f.zip
Merge branch 'update-wireguard-go'
-rw-r--r--ios/PacketTunnel/WireguardDevice.swift10
-rw-r--r--ios/wireguard-go-bridge/api-ios.go8
-rw-r--r--ios/wireguard-go-bridge/go.mod2
-rw-r--r--ios/wireguard-go-bridge/go.sum12
-rw-r--r--ios/wireguard-go-bridge/wireguard.h5
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();