Skip to content

Commit ed2142f

Browse files
committed
Remove "Any" tunnel protocol from query builder
1 parent ee4ad0a commit ed2142f

File tree

8 files changed

+105
-176
lines changed

8 files changed

+105
-176
lines changed

mullvad-relay-selector/src/relay_selector/mod.rs

+9-13
Original file line numberDiff line numberDiff line change
@@ -62,21 +62,19 @@ pub static WIREGUARD_RETRY_ORDER: LazyLock<Vec<RelayQuery>> = LazyLock::new(|| {
6262
use query::builder::{IpVersion, RelayQueryBuilder};
6363
vec![
6464
// 1 This works with any wireguard relay
65-
RelayQueryBuilder::new().wireguard().build(),
65+
RelayQueryBuilder::wireguard().build(),
6666
// 2
67-
RelayQueryBuilder::new().wireguard().port(443).build(),
67+
RelayQueryBuilder::wireguard().port(443).build(),
6868
// 3
69-
RelayQueryBuilder::new()
70-
.wireguard()
69+
RelayQueryBuilder::wireguard()
7170
.ip_version(IpVersion::V6)
7271
.build(),
7372
// 4
74-
RelayQueryBuilder::new().wireguard().shadowsocks().build(),
73+
RelayQueryBuilder::wireguard().shadowsocks().build(),
7574
// 5
76-
RelayQueryBuilder::new().wireguard().udp2tcp().build(),
75+
RelayQueryBuilder::wireguard().udp2tcp().build(),
7776
// 6
78-
RelayQueryBuilder::new()
79-
.wireguard()
77+
RelayQueryBuilder::wireguard()
8078
.udp2tcp()
8179
.ip_version(IpVersion::V6)
8280
.build(),
@@ -92,16 +90,14 @@ pub static OPENVPN_RETRY_ORDER: LazyLock<Vec<RelayQuery>> = LazyLock::new(|| {
9290
use query::builder::RelayQueryBuilder;
9391
vec![
9492
// 1 (openvpn) This works with any openvpn relay
95-
RelayQueryBuilder::new().openvpn().build(),
93+
RelayQueryBuilder::openvpn().build(),
9694
// 2
97-
RelayQueryBuilder::new()
98-
.openvpn()
95+
RelayQueryBuilder::openvpn()
9996
.transport_protocol(TransportProtocol::Tcp)
10097
.port(443)
10198
.build(),
10299
// 3
103-
RelayQueryBuilder::new()
104-
.openvpn()
100+
RelayQueryBuilder::openvpn()
105101
.transport_protocol(TransportProtocol::Tcp)
106102
.bridge()
107103
.build(),

mullvad-relay-selector/src/relay_selector/query.rs

+27-32
Original file line numberDiff line numberDiff line change
@@ -570,54 +570,52 @@ pub mod builder {
570570
}
571571

572572
impl RelayQueryBuilder<Any> {
573-
/// Create a new [`RelayQueryBuilder`] with unopinionated defaults.
573+
/// Create a new [`RelayQueryBuilder`] for Wireguard.
574574
///
575575
/// Call [`Self::build`] to convert the builder into a [`RelayQuery`],
576576
/// which is used to guide the [`RelaySelector`]
577577
///
578578
/// [`RelaySelector`]: crate::RelaySelector
579-
pub fn new() -> RelayQueryBuilder<Any> {
580-
RelayQueryBuilder {
581-
query: RelayQuery::default(),
582-
protocol: Any,
583-
}
584-
}
585-
/// Set the VPN protocol for this [`RelayQueryBuilder`] to Wireguard.
586-
pub fn wireguard(mut self) -> RelayQueryBuilder<Wireguard<Any, Any, Any, Any>> {
579+
pub fn wireguard() -> RelayQueryBuilder<Wireguard<Any, Any, Any, Any>> {
587580
let protocol = Wireguard {
588581
multihop: Any,
589582
obfuscation: Any,
590583
daita: Any,
591584
quantum_resistant: Any,
592585
};
593-
self.query.tunnel_protocol = TunnelType::Wireguard;
586+
let query = RelayQuery {
587+
tunnel_protocol: TunnelType::Wireguard,
588+
..Default::default()
589+
};
594590
// Update the type state
595-
RelayQueryBuilder {
596-
query: self.query,
597-
protocol,
598-
}
591+
RelayQueryBuilder { query, protocol }
599592
}
600593

601-
/// Set the VPN protocol for this [`RelayQueryBuilder`] to OpenVPN.
602-
pub fn openvpn(mut self) -> RelayQueryBuilder<OpenVPN<Any, Any>> {
594+
/// Create a new [`RelayQueryBuilder`] for OpenVPN.
595+
///
596+
/// Call [`Self::build`] to convert the builder into a [`RelayQuery`],
597+
/// which is used to guide the [`RelaySelector`]
598+
///
599+
/// [`RelaySelector`]: crate::RelaySelector
600+
pub fn openvpn() -> RelayQueryBuilder<OpenVPN<Any, Any>> {
603601
let protocol = OpenVPN {
604602
transport_port: Any,
605603
bridge_settings: Any,
606604
};
607-
self.query.tunnel_protocol = TunnelType::OpenVpn;
605+
let query = RelayQuery {
606+
tunnel_protocol: TunnelType::OpenVpn,
607+
..Default::default()
608+
};
608609
// Update the type state
609-
RelayQueryBuilder {
610-
query: self.query,
611-
protocol,
612-
}
610+
RelayQueryBuilder { query, protocol }
613611
}
614612
}
615613

616-
impl Default for RelayQueryBuilder<Any> {
617-
fn default() -> Self {
618-
Self::new()
619-
}
620-
}
614+
// impl Default for RelayQueryBuilder<Any> {
615+
// fn default() -> Self {
616+
// Self::new()
617+
// }
618+
// }
621619

622620
// Type-safe builder for Wireguard relay constraints.
623621

@@ -1061,7 +1059,7 @@ mod test {
10611059
/// DAITA is a core privacy feature.
10621060
#[test]
10631061
fn test_relay_query_daita_openvpn() {
1064-
let mut query = RelayQueryBuilder::new().wireguard().daita().build();
1062+
let mut query = RelayQueryBuilder::wireguard().daita().build();
10651063
query
10661064
.set_tunnel_protocol(TunnelType::OpenVpn)
10671065
.expect_err("expected query to be invalid for OpenVPN");
@@ -1071,7 +1069,7 @@ mod test {
10711069
/// Multihop is a core privacy feature.
10721070
#[test]
10731071
fn test_relay_query_multihop_openvpn() {
1074-
let mut query = RelayQueryBuilder::new().wireguard().multihop().build();
1072+
let mut query = RelayQueryBuilder::wireguard().multihop().build();
10751073
query
10761074
.set_tunnel_protocol(TunnelType::OpenVpn)
10771075
.expect_err("expected query to be invalid for OpenVPN");
@@ -1081,10 +1079,7 @@ mod test {
10811079
/// PQ is a core privacy feature.
10821080
#[test]
10831081
fn test_relay_query_quantum_resistant_openvpn() {
1084-
let mut query = RelayQueryBuilder::new()
1085-
.wireguard()
1086-
.quantum_resistant()
1087-
.build();
1082+
let mut query = RelayQueryBuilder::wireguard().quantum_resistant().build();
10881083
query
10891084
.set_tunnel_protocol(TunnelType::OpenVpn)
10901085
.expect_err("expected query to be invalid for OpenVPN");

0 commit comments

Comments
 (0)