summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2020-11-27 15:54:38 +0100
committerDavid Lönnhager <david.l@mullvad.net>2020-11-27 15:54:38 +0100
commit2245c9c286124e490f12cb1d34da74723d5b1c49 (patch)
treed519a7686ece5b5738a9fc92acf97ed60ec092a1
parente8657063e1c33907959a54094b11d670409c61f6 (diff)
parent9220b4da685a46440e28af8f0f3926e87d4a32b6 (diff)
downloadmullvadvpn-2245c9c286124e490f12cb1d34da74723d5b1c49.tar.xz
mullvadvpn-2245c9c286124e490f12cb1d34da74723d5b1c49.zip
Merge branch 'update-wireguard-go'
-rw-r--r--CHANGELOG.md1
-rw-r--r--gui/tasks/distribution.js1
-rw-r--r--wireguard/libwg/go.mod6
-rw-r--r--wireguard/libwg/go.sum42
-rw-r--r--wireguard/libwg/libwg.go1
-rw-r--r--wireguard/libwg/libwg_android.go8
-rw-r--r--wireguard/libwg/libwg_windows.go7
7 files changed, 36 insertions, 30 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index c5c34e1a19..f8a8ec1269 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -46,6 +46,7 @@ Line wrap the file at 100 chars. Th
- Rename CLI subcommand `mullvad relay set relay` to `mullvad relay set hostname`.
- Upgrade OpenVPN from 2.4.9 to 2.5.0.
- Upgrade Electron from 8.5.2 to Electron 11.0.2.
+- Upgrade wireguard-go to v0.0.20201118.
#### Android
- Remove the Quit button.
diff --git a/gui/tasks/distribution.js b/gui/tasks/distribution.js
index 0623c0b660..0a7647b587 100644
--- a/gui/tasks/distribution.js
+++ b/gui/tasks/distribution.js
@@ -98,6 +98,7 @@ const config = {
{ from: distAssets('binaries/x86_64-pc-windows-msvc/openvpn.exe'), to: '.' },
{ from: distAssets('binaries/x86_64-pc-windows-msvc/sslocal.exe'), to: '.' },
{ from: root('build/lib/x86_64-pc-windows-msvc/libwg.dll'), to: '.' },
+ { from: distAssets('binaries/x86_64-pc-windows-msvc/wintun.dll'), to: '.' },
],
},
diff --git a/wireguard/libwg/go.mod b/wireguard/libwg/go.mod
index 02a170a9b5..270a02357d 100644
--- a/wireguard/libwg/go.mod
+++ b/wireguard/libwg/go.mod
@@ -3,7 +3,7 @@ module github.com/mullvad/mullvadvpn-app/wireguard/libwg
go 1.13
require (
- golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5
- golang.zx2c4.com/wireguard v0.0.20200121
- golang.zx2c4.com/wireguard/windows v0.0.38
+ golang.org/x/sys v0.0.0-20201119102817-f84b799fce68
+ golang.zx2c4.com/wireguard v0.0.20201118
+ golang.zx2c4.com/wireguard/windows v0.3.1
)
diff --git a/wireguard/libwg/go.sum b/wireguard/libwg/go.sum
index ee390a307c..9cd0a5bbe7 100644
--- a/wireguard/libwg/go.sum
+++ b/wireguard/libwg/go.sum
@@ -1,28 +1,26 @@
-github.com/lxn/walk v0.0.0-20191128110447-55ccb3a9f5c1/go.mod h1:E23UucZGqpuUANJooIbHWCufXvOcT6E7Stq81gU+CSQ=
-github.com/lxn/win v0.0.0-20191128105842-2da648fda5b4/go.mod h1:ouWl4wViUNh8tPSIwxTVMuS014WakR1hqvBc2I0bMoA=
+github.com/lxn/walk v0.0.0-20201123161058-0a7a9b4462c3/go.mod h1:E23UucZGqpuUANJooIbHWCufXvOcT6E7Stq81gU+CSQ=
+github.com/lxn/win v0.0.0-20201111105847-2a20daff6a55/go.mod h1:KxxjdtRkfNoYDCUP5ryK7XJJNTnpC8atvtmTheChOtk=
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-20191227163750-53104e6ec876 h1:sKJQZMuxjOAR/Uo2LBfU90onWEf1dF4C+0hPJCc9Mpc=
-golang.org/x/crypto v0.0.0-20191227163750-53104e6ec876/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
+golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9 h1:phUcVbl53swtrUN8kQEXFhUxPlIlWyBfKmidCu7P95o=
+golang.org/x/crypto v0.0.0-20201117144127-c1f2f97bffc9/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I=
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-20191209160850-c0dbc17a3553 h1:efeOvDhwQ29Dj3SdAV/MJf8oukgn+8D8WgaCaRMchF8=
-golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
+golang.org/x/net v0.0.0-20201110031124-69a78807bb2b h1:uwuIcX0g4Yl1NC5XAz37xsr2lTtcqevgzYNVt49waME=
+golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
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-20190904154756-749cb33beabd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20191003212358-c178f38b412c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200107162124-548cf772de50/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5 h1:LfCXLvNmTYH9kEmVgqbnsWfruoXZIrh4YBgqVHtDvw0=
-golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201018230417-eeed37f84f13/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201117222635-ba5294a509c7/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw=
+golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
+golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw=
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/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
+golang.org/x/text v0.3.5-0.20201118010606-4482a914f523/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
-golang.zx2c4.com/wireguard v0.0.20191013-0.20200107164045-4fa2ea6a2dab/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=
-golang.zx2c4.com/wireguard/windows v0.0.38 h1:RIXfYUYDCBk5+tsxrnNBRXxIvgnXJc544MrDMFFXj4I=
-golang.zx2c4.com/wireguard/windows v0.0.38/go.mod h1:bVbqKzpu4jLrEA2nVNn/WdWyyXGZARZNqkoGHd61DuM=
+golang.zx2c4.com/wireguard v0.0.20201118 h1:QL8y2C7uO8T6z1GY+UX/hSeWiYEBurQkXjOTRFtCvXU=
+golang.zx2c4.com/wireguard v0.0.20201118/go.mod h1:Dz+cq5bnrai9EpgYj4GDof/+qaGzbRWbeaAOs1bUYa0=
+golang.zx2c4.com/wireguard/windows v0.3.1 h1:xdvnE/PWV/qUhN8RohAaC69OSlqGVLqOtJ2D+a/26JM=
+golang.zx2c4.com/wireguard/windows v0.3.1/go.mod h1:Mg+sBfB9ou/5VqVh0naiVc3S7sRlK8xMVvJ5Cxgdrr8=
diff --git a/wireguard/libwg/libwg.go b/wireguard/libwg/libwg.go
index 51c01c8976..153ddd94e9 100644
--- a/wireguard/libwg/libwg.go
+++ b/wireguard/libwg/libwg.go
@@ -27,7 +27,6 @@ const (
var tunnels tunnelcontainer.Container
func init() {
- device.RoamingDisabled = true
tunnels = tunnelcontainer.New()
}
diff --git a/wireguard/libwg/libwg_android.go b/wireguard/libwg/libwg_android.go
index 56d681b439..6ba61c660c 100644
--- a/wireguard/libwg/libwg_android.go
+++ b/wireguard/libwg/libwg_android.go
@@ -14,6 +14,7 @@ import (
"golang.org/x/sys/unix"
+ "golang.zx2c4.com/wireguard/conn"
"golang.zx2c4.com/wireguard/device"
"golang.zx2c4.com/wireguard/tun"
@@ -55,6 +56,7 @@ func wgTurnOn(cSettings *C.char, fd int, logSink LogSink, logContext LogContext)
return ERROR_INTERMITTENT_FAILURE
}
+ device.DisableSomeRoamingForBrokenMobileSemantics()
device.Up()
context := tunnelcontainer.Context{
@@ -78,7 +80,8 @@ func wgGetSocketV4(tunnelHandle int32) int32 {
if err != nil {
return ERROR_GENERAL_FAILURE
}
- fd, err := tunnel.Device.PeekLookAtSocketFd4()
+ peek := tunnel.Device.Bind().(conn.PeekLookAtSocketFd)
+ fd, err := peek.PeekLookAtSocketFd4()
if err != nil {
return ERROR_GENERAL_FAILURE
}
@@ -91,7 +94,8 @@ func wgGetSocketV6(tunnelHandle int32) int32 {
if err != nil {
return ERROR_GENERAL_FAILURE
}
- fd, err := tunnel.Device.PeekLookAtSocketFd6()
+ peek := tunnel.Device.Bind().(conn.PeekLookAtSocketFd)
+ fd, err := peek.PeekLookAtSocketFd6()
if err != nil {
return ERROR_GENERAL_FAILURE
}
diff --git a/wireguard/libwg/libwg_windows.go b/wireguard/libwg/libwg_windows.go
index 5b245be71c..032bdbb4ae 100644
--- a/wireguard/libwg/libwg_windows.go
+++ b/wireguard/libwg/libwg_windows.go
@@ -14,6 +14,7 @@ import (
"golang.org/x/sys/windows"
+ "golang.zx2c4.com/wireguard/conn"
"golang.zx2c4.com/wireguard/device"
"golang.zx2c4.com/wireguard/tun"
"golang.zx2c4.com/wireguard/windows/tunnel/winipcfg"
@@ -144,15 +145,17 @@ func wgTurnOn(cIfaceName *C.char, mtu int, waitOnIpv6 bool, cSettings *C.char, l
func wgRebindTunnelSocket(family uint16, interfaceIndex uint32) {
tunnels.ForEach(func(tunnel tunnelcontainer.Context) {
blackhole := (interfaceIndex == 0)
+ bind := tunnel.Device.Bind().(conn.BindSocketToInterface)
+
if family == windows.AF_INET {
tunnel.Logger.Info.Printf("Binding v4 socket to interface %d (blackhole=%v)", interfaceIndex, blackhole)
- err := tunnel.Device.BindSocketToInterface4(interfaceIndex, blackhole)
+ err := bind.BindSocketToInterface4(interfaceIndex, blackhole)
if err != nil {
tunnel.Logger.Info.Println(err)
}
} else if family == windows.AF_INET6 {
tunnel.Logger.Info.Printf("Binding v6 socket to interface %d (blackhole=%v)", interfaceIndex, blackhole)
- err := tunnel.Device.BindSocketToInterface6(interfaceIndex, blackhole)
+ err := bind.BindSocketToInterface6(interfaceIndex, blackhole)
if err != nil {
tunnel.Logger.Info.Println(err)
}