Add ConnectionProfile.serviceDelegate

Requires explicit CodingKey to skip field serialization.

Waiting for @transient or the like.
This commit is contained in:
Davide De Rosa 2021-01-08 18:41:48 +01:00
parent d62570472f
commit 170d089a44
4 changed files with 54 additions and 0 deletions

View File

@ -48,6 +48,8 @@ public protocol ConnectionProfile: class, EndpointDataSource, CustomStringConver
var manualNetworkSettings: ProfileNetworkSettings? { get set } var manualNetworkSettings: ProfileNetworkSettings? { get set }
var serviceDelegate: ConnectionServiceDelegate? { get set }
func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration
} }

View File

@ -27,6 +27,28 @@ import Foundation
import TunnelKit import TunnelKit
public class HostConnectionProfile: ConnectionProfile, Codable, Equatable { public class HostConnectionProfile: ConnectionProfile, Codable, Equatable {
// XXX: drop after @transient serviceDelegate
public enum CodingKeys: CodingKey {
case hostname
case parameters
case customAddress
case customProtocol
case id
case username
case trustedNetworks
case networkChoices
case manualNetworkSettings
}
public let hostname: String public let hostname: String
public var parameters: OpenVPNTunnelProvider.Configuration public var parameters: OpenVPNTunnelProvider.Configuration
@ -64,6 +86,8 @@ public class HostConnectionProfile: ConnectionProfile, Codable, Equatable {
public var manualNetworkSettings: ProfileNetworkSettings? public var manualNetworkSettings: ProfileNetworkSettings?
public weak var serviceDelegate: ConnectionServiceDelegate?
public func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration { public func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration {
guard let endpointProtocols = parameters.sessionConfiguration.endpointProtocols, !endpointProtocols.isEmpty else { guard let endpointProtocols = parameters.sessionConfiguration.endpointProtocols, !endpointProtocols.isEmpty else {
preconditionFailure("No endpointProtocols") preconditionFailure("No endpointProtocols")

View File

@ -48,6 +48,8 @@ public class PlaceholderConnectionProfile: ConnectionProfile {
public var manualNetworkSettings: ProfileNetworkSettings? public var manualNetworkSettings: ProfileNetworkSettings?
public weak var serviceDelegate: ConnectionServiceDelegate?
public func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration { public func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration {
fatalError("Generating configuration from a PlaceholderConnectionProfile") fatalError("Generating configuration from a PlaceholderConnectionProfile")
} }

View File

@ -27,6 +27,30 @@ import Foundation
import TunnelKit import TunnelKit
public class ProviderConnectionProfile: ConnectionProfile, Codable, Equatable { public class ProviderConnectionProfile: ConnectionProfile, Codable, Equatable {
// XXX: drop after @transient serviceDelegate
public enum CodingKeys: CodingKey {
case name
case poolId
case presetId
case customAddress
case customProtocol
case favoriteGroupIds
case username
case trustedNetworks
case networkChoices
case manualNetworkSettings
}
public let name: Infrastructure.Name public let name: Infrastructure.Name
public var infrastructure: Infrastructure { public var infrastructure: Infrastructure {
@ -122,6 +146,8 @@ public class ProviderConnectionProfile: ConnectionProfile, Codable, Equatable {
public var manualNetworkSettings: ProfileNetworkSettings? public var manualNetworkSettings: ProfileNetworkSettings?
public weak var serviceDelegate: ConnectionServiceDelegate?
public func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration { public func generate(from configuration: OpenVPNTunnelProvider.Configuration, preferences: Preferences) throws -> OpenVPNTunnelProvider.Configuration {
guard let pool = pool else { guard let pool = pool else {
preconditionFailure("Nil pool?") preconditionFailure("Nil pool?")