diff options
| author | Oskar Nyberg <oskar@mullvad.net> | 2021-09-13 13:35:20 +0200 |
|---|---|---|
| committer | Oskar Nyberg <oskar@mullvad.net> | 2021-09-13 13:35:20 +0200 |
| commit | b8930db15b76d1866ab18cd58cdf9936dbe0ffa2 (patch) | |
| tree | 6e6e0f647050d3bfc08758283ed6137b62cbe67f /gui/src/main | |
| parent | 343fd4ff64150920f14de07c66385f5bb3fff9ed (diff) | |
| parent | 268644e1193789539b6226eb04704a7a6f29d938 (diff) | |
| download | mullvadvpn-b8930db15b76d1866ab18cd58cdf9936dbe0ffa2.tar.xz mullvadvpn-b8930db15b76d1866ab18cd58cdf9936dbe0ffa2.zip | |
Merge branch 'add-ip-version-setting'
Diffstat (limited to 'gui/src/main')
| -rw-r--r-- | gui/src/main/daemon-rpc.ts | 33 | ||||
| -rw-r--r-- | gui/src/main/index.ts | 1 |
2 files changed, 29 insertions, 5 deletions
diff --git a/gui/src/main/daemon-rpc.ts b/gui/src/main/daemon-rpc.ts index c52c2370da..7464e0b5c9 100644 --- a/gui/src/main/daemon-rpc.ts +++ b/gui/src/main/daemon-rpc.ts @@ -1157,12 +1157,24 @@ function convertFromOpenVpnConstraints( function convertFromWireguardConstraints( constraints: grpcTypes.WireguardConstraints, ): IWireguardConstraints { - const transportPort = convertFromConstraint(constraints.getPort()); - if (transportPort !== 'any' && 'only' in transportPort) { - const port = convertFromConstraint(transportPort.only.getPort()); - return { port }; + const result: IWireguardConstraints = { port: 'any', ipVersion: 'any' }; + + const port = constraints.getPort()?.getPort(); + if (port) { + result.port = { only: port }; + } + + const ipVersion = constraints.getIpVersion()?.getProtocol(); + switch (ipVersion) { + case grpcTypes.IpVersion.V4: + result.ipVersion = { only: 'ipv4' }; + break; + case grpcTypes.IpVersion.V6: + result.ipVersion = { only: 'ipv6' }; + break; } - return { port: 'any' }; + + return result; } function convertFromTunnelTypeConstraint( @@ -1265,6 +1277,7 @@ function convertToWireguardConstraints( ): grpcTypes.WireguardConstraints | undefined { if (constraint) { const wireguardConstraints = new grpcTypes.WireguardConstraints(); + const port = liftConstraint(constraint.port); if (port) { const portConstraints = new grpcTypes.TransportPort(); @@ -1272,6 +1285,16 @@ function convertToWireguardConstraints( portConstraints.setProtocol(grpcTypes.TransportProtocol.UDP); wireguardConstraints.setPort(portConstraints); } + + const ipVersion = liftConstraint(constraint.ipVersion); + if (ipVersion) { + const ipVersionProtocol = + ipVersion === 'ipv4' ? grpcTypes.IpVersion.V4 : grpcTypes.IpVersion.V6; + const ipVersionConstraints = new grpcTypes.IpVersionConstraint(); + ipVersionConstraints.setProtocol(ipVersionProtocol); + wireguardConstraints.setIpVersion(ipVersionConstraints); + } + return wireguardConstraints; } return undefined; diff --git a/gui/src/main/index.ts b/gui/src/main/index.ts index ff7e9e64a7..34aa60ce6d 100644 --- a/gui/src/main/index.ts +++ b/gui/src/main/index.ts @@ -152,6 +152,7 @@ class ApplicationMain { }, wireguardConstraints: { port: 'any', + ipVersion: 'any', }, }, }, |
