summaryrefslogtreecommitdiffhomepage
path: root/mullvad-management-interface/src
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2022-07-06 14:28:28 +0200
committerDavid Lönnhager <david.l@mullvad.net>2022-07-11 13:51:27 +0200
commitebda07a2b094844c7ff760dbb91176a8f96f3197 (patch)
tree046bae78b1c20d2fd8e46da3338917e9e7d2acc5 /mullvad-management-interface/src
parentf7a3a5a6d33faa6ea6efc397ed2b7455e40e279c (diff)
downloadmullvadvpn-ebda07a2b094844c7ff760dbb91176a8f96f3197.tar.xz
mullvadvpn-ebda07a2b094844c7ff760dbb91176a8f96f3197.zip
Send endpoint data to frontends
Diffstat (limited to 'mullvad-management-interface/src')
-rw-r--r--mullvad-management-interface/src/types.rs57
1 files changed, 56 insertions, 1 deletions
diff --git a/mullvad-management-interface/src/types.rs b/mullvad-management-interface/src/types.rs
index ff1f632e3e..4ea8a9729e 100644
--- a/mullvad-management-interface/src/types.rs
+++ b/mullvad-management-interface/src/types.rs
@@ -696,7 +696,12 @@ impl From<&mullvad_types::settings::TunnelOptions> for TunnelOptions {
impl From<mullvad_types::relay_list::RelayList> for RelayList {
fn from(relay_list: mullvad_types::relay_list::RelayList) -> Self {
- let mut proto_list = RelayList { countries: vec![] };
+ let mut proto_list = RelayList {
+ countries: vec![],
+ openvpn: Some(OpenVpnEndpointData::from(relay_list.openvpn)),
+ bridge: Some(BridgeEndpointData::from(relay_list.bridge)),
+ wireguard: Some(WireguardEndpointData::from(relay_list.wireguard)),
+ };
proto_list.countries = relay_list
.countries
.into_iter()
@@ -706,6 +711,56 @@ impl From<mullvad_types::relay_list::RelayList> for RelayList {
}
}
+impl From<mullvad_types::relay_list::OpenVpnEndpointData> for OpenVpnEndpointData {
+ fn from(openvpn: mullvad_types::relay_list::OpenVpnEndpointData) -> Self {
+ OpenVpnEndpointData {
+ endpoints: openvpn
+ .ports
+ .into_iter()
+ .map(|endpoint| OpenVpnEndpoint {
+ port: u32::from(endpoint.port),
+ protocol: TransportProtocol::from(endpoint.protocol) as i32,
+ })
+ .collect(),
+ }
+ }
+}
+
+impl From<mullvad_types::relay_list::BridgeEndpointData> for BridgeEndpointData {
+ fn from(bridge: mullvad_types::relay_list::BridgeEndpointData) -> Self {
+ BridgeEndpointData {
+ shadowsocks: bridge
+ .shadowsocks
+ .into_iter()
+ .map(|endpoint| ShadowsocksEndpointData {
+ port: u32::from(endpoint.port),
+ cipher: endpoint.cipher,
+ password: endpoint.password,
+ protocol: TransportProtocol::from(endpoint.protocol) as i32,
+ })
+ .collect(),
+ }
+ }
+}
+
+impl From<mullvad_types::relay_list::WireguardEndpointData> for WireguardEndpointData {
+ fn from(wireguard: mullvad_types::relay_list::WireguardEndpointData) -> Self {
+ WireguardEndpointData {
+ port_ranges: wireguard
+ .port_ranges
+ .into_iter()
+ .map(|(first, last)| PortRange {
+ first: u32::from(first),
+ last: u32::from(last),
+ })
+ .collect(),
+ ipv4_gateway: wireguard.ipv4_gateway.to_string(),
+ ipv6_gateway: wireguard.ipv6_gateway.to_string(),
+ udp2tcp_ports: wireguard.udp2tcp_ports.into_iter().map(u32::from).collect(),
+ }
+ }
+}
+
impl From<mullvad_types::relay_list::RelayListCountry> for RelayListCountry {
fn from(country: mullvad_types::relay_list::RelayListCountry) -> Self {
let mut proto_country = RelayListCountry {