summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDavid Lönnhager <david.l@mullvad.net>2021-04-22 17:48:16 +0200
committerDavid Lönnhager <david.l@mullvad.net>2021-04-29 12:17:19 +0200
commitb19107759ed9ba86ab11876cbd0c308c1c5d042d (patch)
tree4e9b0acc4ae916f7ac9bcf3acf2318412e342481
parent44f507e5a72446a916cd296d98906777c9290cd2 (diff)
downloadmullvadvpn-b19107759ed9ba86ab11876cbd0c308c1c5d042d.tar.xz
mullvadvpn-b19107759ed9ba86ab11876cbd0c308c1c5d042d.zip
Implement From for BridgeState
-rw-r--r--mullvad-daemon/src/management_interface.rs13
-rw-r--r--mullvad-daemon/src/relays.rs10
-rw-r--r--mullvad-management-interface/src/types.rs13
-rw-r--r--mullvad-types/src/relay_constraints.rs2
-rw-r--r--mullvad-types/src/settings/mod.rs4
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 {