summaryrefslogtreecommitdiffhomepage
path: root/ios/PacketTunnelCore
diff options
context:
space:
mode:
authormojganii <mojgan.jelodar@codic.se>2024-08-14 14:03:23 +0200
committerBug Magnet <marco.nikic@mullvad.net>2024-08-15 09:38:02 +0200
commitbdfd39740fdbf9c5462967c23a03e29aeece41d2 (patch)
tree27ea3bacb29034e424ee7d865e1b3a67c252b3b7 /ios/PacketTunnelCore
parent1283882cf051a68fe28b26ebbce93ae1bf0895b6 (diff)
downloadmullvadvpn-bdfd39740fdbf9c5462967c23a03e29aeece41d2.tar.xz
mullvadvpn-bdfd39740fdbf9c5462967c23a03e29aeece41d2.zip
Add DAITA into TunnelSettings
Diffstat (limited to 'ios/PacketTunnelCore')
-rw-r--r--ios/PacketTunnelCore/Actor/PacketTunnelActor.swift5
-rw-r--r--ios/PacketTunnelCore/Actor/Protocols/SettingsReaderProtocol.swift66
2 files changed, 46 insertions, 25 deletions
diff --git a/ios/PacketTunnelCore/Actor/PacketTunnelActor.swift b/ios/PacketTunnelCore/Actor/PacketTunnelActor.swift
index 86d6baae72..10cd928cf8 100644
--- a/ios/PacketTunnelCore/Actor/PacketTunnelActor.swift
+++ b/ios/PacketTunnelCore/Actor/PacketTunnelActor.swift
@@ -500,10 +500,7 @@ extension PacketTunnelActor {
}
case .random:
- return try relaySelector.selectRelays(
- with: relayConstraints,
- connectionAttemptCount: connectionAttemptCount
- )
+ return try relaySelector.selectRelays(connectionAttemptCount: connectionAttemptCount)
case let .preSelected(selectedRelays):
return selectedRelays
diff --git a/ios/PacketTunnelCore/Actor/Protocols/SettingsReaderProtocol.swift b/ios/PacketTunnelCore/Actor/Protocols/SettingsReaderProtocol.swift
index 8df91bd31b..a1107efc2a 100644
--- a/ios/PacketTunnelCore/Actor/Protocols/SettingsReaderProtocol.swift
+++ b/ios/PacketTunnelCore/Actor/Protocols/SettingsReaderProtocol.swift
@@ -31,36 +31,60 @@ public struct Settings: Equatable {
/// IP addresses assigned for tunnel interface.
public var interfaceAddresses: [IPAddressRange]
+ public var tunnelSettings: LatestTunnelSettings
+
+ public init(
+ privateKey: PrivateKey,
+ interfaceAddresses: [IPAddressRange],
+ tunnelSettings: LatestTunnelSettings
+ ) {
+ self.privateKey = privateKey
+ self.interfaceAddresses = interfaceAddresses
+ self.tunnelSettings = tunnelSettings
+ }
+}
+
+extension Settings {
/// Relay constraints.
- public var relayConstraints: RelayConstraints
+ public var relayConstraints: RelayConstraints {
+ tunnelSettings.relayConstraints
+ }
/// DNS servers selected by user.
- public var dnsServers: SelectedDNSServers
+ public var dnsServers: SelectedDNSServers {
+ /**
+ Converts `DNSSettings` to `SelectedDNSServers` structure.
+ */
+ if tunnelSettings.dnsSettings.effectiveEnableCustomDNS {
+ let addresses = Array(
+ tunnelSettings.dnsSettings.customDNSDomains
+ .prefix(DNSSettings.maxAllowedCustomDNSDomains)
+ )
+ return .custom(addresses)
+ } else if let serverAddress = tunnelSettings.dnsSettings.blockingOptions.serverAddress {
+ return .blocking(serverAddress)
+ } else {
+ return .gateway
+ }
+ }
/// Obfuscation settings
- public var obfuscation: WireGuardObfuscationSettings
+ public var obfuscation: WireGuardObfuscationSettings {
+ tunnelSettings.wireGuardObfuscation
+ }
- public var quantumResistance: TunnelQuantumResistance
+ public var quantumResistance: TunnelQuantumResistance {
+ tunnelSettings.tunnelQuantumResistance
+ }
/// Whether multi-hop is enabled.
- public var multihopState: MultihopState
+ public var multihopState: MultihopState {
+ tunnelSettings.tunnelMultihopState
+ }
- public init(
- privateKey: PrivateKey,
- interfaceAddresses: [IPAddressRange],
- relayConstraints: RelayConstraints,
- dnsServers: SelectedDNSServers,
- obfuscation: WireGuardObfuscationSettings,
- quantumResistance: TunnelQuantumResistance,
- multihopState: MultihopState
- ) {
- self.privateKey = privateKey
- self.interfaceAddresses = interfaceAddresses
- self.relayConstraints = relayConstraints
- self.dnsServers = dnsServers
- self.obfuscation = obfuscation
- self.quantumResistance = quantumResistance
- self.multihopState = multihopState
+ /// DAITA settings.
+ public var daita: DAITASettings {
+ tunnelSettings.daita
}
}