diff options
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', }, }, }, |
