diff options
| author | Markus Pettersson <markus.pettersson@mullvad.net> | 2024-04-08 11:35:40 +0200 |
|---|---|---|
| committer | Markus Pettersson <markus.pettersson@mullvad.net> | 2024-04-08 12:09:12 +0200 |
| commit | abd86d04352fb6e4f8e089cf45109394680bd41f (patch) | |
| tree | 3f5b26aa675dcb5df201e418c400907ae5ee944c | |
| parent | 631dcd69a3d9ff18e97e85597e6e559f2a727d6f (diff) | |
| download | mullvadvpn-abd86d04352fb6e4f8e089cf45109394680bd41f.tar.xz mullvadvpn-abd86d04352fb6e4f8e089cf45109394680bd41f.zip | |
Refactor Shadowsocks bridge detailing function
| -rw-r--r-- | mullvad-relay-selector/src/relay_selector/detailer.rs | 26 | ||||
| -rw-r--r-- | mullvad-relay-selector/src/relay_selector/helpers.rs | 29 | ||||
| -rw-r--r-- | mullvad-relay-selector/src/relay_selector/mod.rs | 2 |
3 files changed, 29 insertions, 28 deletions
diff --git a/mullvad-relay-selector/src/relay_selector/detailer.rs b/mullvad-relay-selector/src/relay_selector/detailer.rs index 8fa36f5434..807903eb39 100644 --- a/mullvad-relay-selector/src/relay_selector/detailer.rs +++ b/mullvad-relay-selector/src/relay_selector/detailer.rs @@ -15,11 +15,13 @@ use mullvad_types::{ endpoint::MullvadWireguardEndpoint, relay_constraints::TransportPort, relay_list::{ - OpenVpnEndpoint, OpenVpnEndpointData, Relay, RelayEndpointData, WireguardEndpointData, + BridgeEndpointData, OpenVpnEndpoint, OpenVpnEndpointData, Relay, RelayEndpointData, + WireguardEndpointData, }, }; use talpid_types::net::{ all_of_the_internet, + proxy::CustomProxy, wireguard::{PeerConfig, PublicKey}, Endpoint, IpVersion, TransportProtocol, }; @@ -293,3 +295,25 @@ fn compatible_openvpn_port_combo( }, } } + +/// Picks a random bridge from a relay. +pub fn bridge_endpoint(data: &BridgeEndpointData, relay: &Relay) -> Option<CustomProxy> { + use rand::seq::SliceRandom; + if relay.endpoint_data != RelayEndpointData::Bridge { + return None; + } + data.shadowsocks + .choose(&mut rand::thread_rng()) + .inspect(|shadowsocks_endpoint| { + log::info!( + "Selected Shadowsocks bridge {} at {}:{}/{}", + relay.hostname, + relay.ipv4_addr_in, + shadowsocks_endpoint.port, + shadowsocks_endpoint.protocol + ); + }) + .map(|shadowsocks_endpoint| { + shadowsocks_endpoint.to_proxy_settings(relay.ipv4_addr_in.into()) + }) +} diff --git a/mullvad-relay-selector/src/relay_selector/helpers.rs b/mullvad-relay-selector/src/relay_selector/helpers.rs index f5f374ea28..e27a736845 100644 --- a/mullvad-relay-selector/src/relay_selector/helpers.rs +++ b/mullvad-relay-selector/src/relay_selector/helpers.rs @@ -3,13 +3,11 @@ use std::net::SocketAddr; use mullvad_types::{ - constraints::Constraint, - endpoint::MullvadWireguardEndpoint, - relay_constraints::Udp2TcpObfuscationSettings, - relay_list::{BridgeEndpointData, Relay, RelayEndpointData}, + constraints::Constraint, endpoint::MullvadWireguardEndpoint, + relay_constraints::Udp2TcpObfuscationSettings, relay_list::Relay, }; use rand::{seq::SliceRandom, thread_rng, Rng}; -use talpid_types::net::{obfuscation::ObfuscatorConfig, proxy::CustomProxy}; +use talpid_types::net::obfuscation::ObfuscatorConfig; use crate::SelectedObfuscator; @@ -59,27 +57,6 @@ pub fn pick_random_relay_weighted<RelayType>( } } -/// Picks a random bridge from a relay. -pub fn pick_random_bridge(data: &BridgeEndpointData, relay: &Relay) -> Option<CustomProxy> { - if relay.endpoint_data != RelayEndpointData::Bridge { - return None; - } - data.shadowsocks - .choose(&mut rand::thread_rng()) - .inspect(|shadowsocks_endpoint| { - log::info!( - "Selected Shadowsocks bridge {} at {}:{}/{}", - relay.hostname, - relay.ipv4_addr_in, - shadowsocks_endpoint.port, - shadowsocks_endpoint.protocol - ); - }) - .map(|shadowsocks_endpoint| { - shadowsocks_endpoint.to_proxy_settings(relay.ipv4_addr_in.into()) - }) -} - pub fn get_udp2tcp_obfuscator( obfuscation_settings_constraint: &Constraint<Udp2TcpObfuscationSettings>, udp2tcp_ports: &[u16], diff --git a/mullvad-relay-selector/src/relay_selector/mod.rs b/mullvad-relay-selector/src/relay_selector/mod.rs index 71833e968e..fbf3ac1c4b 100644 --- a/mullvad-relay-selector/src/relay_selector/mod.rs +++ b/mullvad-relay-selector/src/relay_selector/mod.rs @@ -953,7 +953,7 @@ impl RelaySelector { .cloned() .ok_or(Error::NoRelay), }?; - let endpoint = helpers::pick_random_bridge(bridge_data, &bridge).ok_or(Error::NoBridge)?; + let endpoint = detailer::bridge_endpoint(bridge_data, &bridge).ok_or(Error::NoBridge)?; Ok((endpoint, bridge)) } |
