diff options
author | Roopesh Chander <roop@roopc.net> | 2018-11-10 19:08:21 +0530 |
---|---|---|
committer | Roopesh Chander <roop@roopc.net> | 2018-11-11 01:17:36 +0530 |
commit | 4b7094d652c657de0b802dcee91f0ccf2e07bb58 (patch) | |
tree | b6c1b06b43aebb27f3292261c33d6e19d4b8eb59 /WireGuard/Shared/Model/Configuration.swift | |
parent | Model: ActivityType enum to represent VPN-on-demand options (diff) | |
download | wireguard-apple-4b7094d652c657de0b802dcee91f0ccf2e07bb58.tar.xz wireguard-apple-4b7094d652c657de0b802dcee91f0ccf2e07bb58.zip |
Model: Add activationType to tunnel configuration
We make sure existing tunnel serializations can be deserialized correctly.
We also bump up the tunnelConfigurationVersion, because the tunnel
configuration contents have changed.
Signed-off-by: Roopesh Chander <roop@roopc.net>
Diffstat (limited to '')
-rw-r--r-- | WireGuard/Shared/Model/Configuration.swift | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/WireGuard/Shared/Model/Configuration.swift b/WireGuard/Shared/Model/Configuration.swift index 45c29c1..f6598bb 100644 --- a/WireGuard/Shared/Model/Configuration.swift +++ b/WireGuard/Shared/Model/Configuration.swift @@ -7,9 +7,11 @@ import Foundation final class TunnelConfiguration { var interface: InterfaceConfiguration let peers: [PeerConfiguration] + var activationType: ActivationType init(interface: InterfaceConfiguration, peers: [PeerConfiguration]) { self.interface = interface self.peers = peers + self.activationType = .activateManually let peerPublicKeysArray = peers.map { $0.publicKey } let peerPublicKeysSet = Set<Data>(peerPublicKeysArray) @@ -61,11 +63,15 @@ extension TunnelConfiguration: Decodable { enum CodingKeys: CodingKey { case interface case peers + case activationType } convenience init(from decoder: Decoder) throws { let values = try decoder.container(keyedBy: CodingKeys.self) let interface = try values.decode(InterfaceConfiguration.self, forKey: .interface) let peers = try values.decode([PeerConfiguration].self, forKey: .peers) + let activationType = (try? values.decode(ActivationType.self, forKey: .activationType)) ?? .activateManually + self.init(interface: interface, peers: peers) + self.activationType = activationType } } |