diff options
| author | David Lönnhager <david.l@mullvad.net> | 2021-04-22 17:48:16 +0200 |
|---|---|---|
| committer | David Lönnhager <david.l@mullvad.net> | 2021-04-29 12:17:19 +0200 |
| commit | b19107759ed9ba86ab11876cbd0c308c1c5d042d (patch) | |
| tree | 4e9b0acc4ae916f7ac9bcf3acf2318412e342481 | |
| parent | 44f507e5a72446a916cd296d98906777c9290cd2 (diff) | |
| download | mullvadvpn-b19107759ed9ba86ab11876cbd0c308c1c5d042d.tar.xz mullvadvpn-b19107759ed9ba86ab11876cbd0c308c1c5d042d.zip | |
Implement From for BridgeState
| -rw-r--r-- | mullvad-daemon/src/management_interface.rs | 13 | ||||
| -rw-r--r-- | mullvad-daemon/src/relays.rs | 10 | ||||
| -rw-r--r-- | mullvad-management-interface/src/types.rs | 13 | ||||
| -rw-r--r-- | mullvad-types/src/relay_constraints.rs | 2 | ||||
| -rw-r--r-- | mullvad-types/src/settings/mod.rs | 4 |
5 files changed, 22 insertions, 20 deletions
diff --git a/mullvad-daemon/src/management_interface.rs b/mullvad-daemon/src/management_interface.rs index 3ca6da5c24..60c3a6a706 100644 --- a/mullvad-daemon/src/management_interface.rs +++ b/mullvad-daemon/src/management_interface.rs @@ -768,7 +768,7 @@ fn convert_settings(settings: &Settings) -> types::Settings { bridge_settings: Some(types::BridgeSettings::from( settings.bridge_settings.clone(), )), - bridge_state: Some(convert_bridge_state(settings.get_bridge_state())), + bridge_state: Some(types::BridgeState::from(settings.get_bridge_state())), allow_lan: settings.allow_lan, block_when_disconnected: settings.block_when_disconnected, auto_connect: settings.auto_connect, @@ -1030,17 +1030,6 @@ fn convert_public_key(public_key: &wireguard::PublicKey) -> types::PublicKey { } } -fn convert_bridge_state(state: &BridgeState) -> types::BridgeState { - let state = match state { - BridgeState::Auto => types::bridge_state::State::Auto, - BridgeState::On => types::bridge_state::State::On, - BridgeState::Off => types::bridge_state::State::Off, - }; - types::BridgeState { - state: i32::from(state), - } -} - fn convert_tunnel_options(options: &TunnelOptions) -> types::TunnelOptions { types::TunnelOptions { openvpn: Some(types::tunnel_options::OpenvpnOptions { diff --git a/mullvad-daemon/src/relays.rs b/mullvad-daemon/src/relays.rs index c029baaa54..54d664b640 100644 --- a/mullvad-daemon/src/relays.rs +++ b/mullvad-daemon/src/relays.rs @@ -218,7 +218,7 @@ impl RelaySelector { pub fn get_tunnel_endpoint( &mut self, relay_constraints: &RelayConstraints, - bridge_state: &BridgeState, + bridge_state: BridgeState, retry_attempt: u32, wg_key_exists: bool, ) -> Result<(Relay, MullvadEndpoint), Error> { @@ -250,12 +250,12 @@ impl RelaySelector { fn preferred_constraints( &self, original_constraints: &RelayConstraints, - bridge_state: &BridgeState, + bridge_state: BridgeState, retry_attempt: u32, wg_key_exists: bool, ) -> RelayConstraints { let (preferred_port, preferred_protocol, preferred_tunnel) = - if *bridge_state != BridgeState::On { + if bridge_state != BridgeState::On { self.preferred_tunnel_constraints( retry_attempt, &original_constraints.location, @@ -277,7 +277,7 @@ impl RelaySelector { Constraint::Any => { if original_constraints.openvpn_constraints.port.is_any() && original_constraints.openvpn_constraints.protocol.is_any() - || *bridge_state == BridgeState::On + || bridge_state == BridgeState::On { relay_constraints.openvpn_constraints = OpenVpnConstraints { port: preferred_port, @@ -297,7 +297,7 @@ impl RelaySelector { Constraint::Only(TunnelType::OpenVpn) => { let openvpn_constraints = &mut relay_constraints.openvpn_constraints; *openvpn_constraints = original_constraints.openvpn_constraints; - if *bridge_state == BridgeState::On && openvpn_constraints.protocol.is_any() { + if bridge_state == BridgeState::On && openvpn_constraints.protocol.is_any() { // FIXME: This is temporary while talpid-core only supports TCP proxies openvpn_constraints.protocol = Constraint::Only(TransportProtocol::Tcp); } else if openvpn_constraints.port.is_any() && openvpn_constraints.protocol.is_any() diff --git a/mullvad-management-interface/src/types.rs b/mullvad-management-interface/src/types.rs index 30fe78250b..4a887c55e9 100644 --- a/mullvad-management-interface/src/types.rs +++ b/mullvad-management-interface/src/types.rs @@ -119,6 +119,19 @@ impl From<mullvad_types::relay_constraints::LocationConstraint> for RelayLocatio } } +impl From<mullvad_types::relay_constraints::BridgeState> for BridgeState { + fn from(state: mullvad_types::relay_constraints::BridgeState) -> Self { + use mullvad_types::relay_constraints::BridgeState; + Self { + state: i32::from(match state { + BridgeState::Auto => bridge_state::State::Auto, + BridgeState::On => bridge_state::State::On, + BridgeState::Off => bridge_state::State::Off, + }), + } + } +} + impl From<mullvad_types::relay_constraints::BridgeSettings> for BridgeSettings { fn from(settings: mullvad_types::relay_constraints::BridgeSettings) -> Self { use mullvad_types::relay_constraints::BridgeSettings as MullvadBridgeSettings; diff --git a/mullvad-types/src/relay_constraints.rs b/mullvad-types/src/relay_constraints.rs index 908b0d3215..d32608124d 100644 --- a/mullvad-types/src/relay_constraints.rs +++ b/mullvad-types/src/relay_constraints.rs @@ -498,7 +498,7 @@ impl fmt::Display for BridgeConstraints { } /// Setting indicating whether to connect to a bridge server, or to handle it automatically. -#[derive(Debug, Clone, Eq, PartialEq, Deserialize, Serialize)] +#[derive(Debug, Clone, Copy, Eq, PartialEq, Deserialize, Serialize)] #[serde(rename_all = "snake_case")] pub enum BridgeState { Auto, diff --git a/mullvad-types/src/settings/mod.rs b/mullvad-types/src/settings/mod.rs index 9ea32fdb3b..1cd900edfc 100644 --- a/mullvad-types/src/settings/mod.rs +++ b/mullvad-types/src/settings/mod.rs @@ -143,8 +143,8 @@ impl Settings { } } - pub fn get_bridge_state(&self) -> &BridgeState { - &self.bridge_state + pub fn get_bridge_state(&self) -> BridgeState { + self.bridge_state } pub fn set_bridge_state(&mut self, bridge_state: BridgeState) -> bool { |
