-
Notifications
You must be signed in to change notification settings - Fork 384
/
Copy pathTunnelSettingsUpdate.swift
57 lines (53 loc) · 1.95 KB
/
TunnelSettingsUpdate.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
//
// TunnelSettingsUpdate.swift
// MullvadSettings
//
// Created by Andrew Bulhak on 2024-02-13.
// Copyright © 2025 Mullvad VPN AB. All rights reserved.
//
import Foundation
import MullvadTypes
public enum TunnelSettingsUpdate: Sendable {
case localNetworkSharing(Bool)
case includeAllNetworks(Bool)
case dnsSettings(DNSSettings)
case obfuscation(WireGuardObfuscationSettings)
case relayConstraints(RelayConstraints)
case quantumResistance(TunnelQuantumResistance)
case multihop(MultihopState)
case daita(DAITASettings)
}
extension TunnelSettingsUpdate {
public func apply(to settings: inout LatestTunnelSettings) {
switch self {
case let .localNetworkSharing(enabled):
settings.localNetworkSharing = enabled
case let .includeAllNetworks(enabled):
settings.includeAllNetworks = enabled
case let .dnsSettings(newDNSSettings):
settings.dnsSettings = newDNSSettings
case let .obfuscation(newObfuscationSettings):
settings.wireGuardObfuscation = newObfuscationSettings
case let .relayConstraints(newRelayConstraints):
settings.relayConstraints = newRelayConstraints
case let .quantumResistance(newQuantumResistance):
settings.tunnelQuantumResistance = newQuantumResistance
case let .multihop(newState):
settings.tunnelMultihopState = newState
case let .daita(newDAITASettings):
settings.daita = newDAITASettings
}
}
public var subjectName: String {
switch self {
case .localNetworkSharing: "Local network sharing"
case .includeAllNetworks: "Include all networks"
case .dnsSettings: "DNS settings"
case .obfuscation: "obfuscation settings"
case .relayConstraints: "relay constraints"
case .quantumResistance: "quantum resistance"
case .multihop: "multihop"
case .daita: "daita"
}
}
}