diff options
| author | David Lönnhager <david.l@mullvad.net> | 2022-07-06 14:28:28 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2022-07-11 13:51:27 +0200 |
| commit | ebda07a2b094844c7ff760dbb91176a8f96f3197 (patch) | |
| tree | 046bae78b1c20d2fd8e46da3338917e9e7d2acc5 /mullvad-management-interface/src | |
| parent | f7a3a5a6d33faa6ea6efc397ed2b7455e40e279c (diff) | |
| download | mullvadvpn-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.rs | 57 |
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 { |
