Merge branch 'extend-pool-metadata'

This commit is contained in:
Davide De Rosa 2019-03-25 20:08:50 +01:00
commit 3cb09f9b0c
2 changed files with 21 additions and 2 deletions

View File

@ -59,6 +59,8 @@ public struct InfrastructurePreset: Codable {
case renegotiatesAfterSeconds = "reneg" case renegotiatesAfterSeconds = "reneg"
case tlsWrap = "wrap"
case usesPIAPatches = "pia" case usesPIAPatches = "pia"
case randomizeEndpoint = "random" case randomizeEndpoint = "random"
@ -95,6 +97,7 @@ public struct InfrastructurePreset: Codable {
sessionBuilder.clientCertificate = try cfgContainer.decodeIfPresent(CryptoContainer.self, forKey: .clientCertificate) sessionBuilder.clientCertificate = try cfgContainer.decodeIfPresent(CryptoContainer.self, forKey: .clientCertificate)
sessionBuilder.clientKey = try cfgContainer.decodeIfPresent(CryptoContainer.self, forKey: .clientKey) sessionBuilder.clientKey = try cfgContainer.decodeIfPresent(CryptoContainer.self, forKey: .clientKey)
sessionBuilder.compressionFraming = try cfgContainer.decode(SessionProxy.CompressionFraming.self, forKey: .compressionFraming) sessionBuilder.compressionFraming = try cfgContainer.decode(SessionProxy.CompressionFraming.self, forKey: .compressionFraming)
sessionBuilder.tlsWrap = try cfgContainer.decodeIfPresent(SessionProxy.TLSWrap.self, forKey: .tlsWrap)
sessionBuilder.keepAliveInterval = try cfgContainer.decodeIfPresent(TimeInterval.self, forKey: .keepAliveSeconds) sessionBuilder.keepAliveInterval = try cfgContainer.decodeIfPresent(TimeInterval.self, forKey: .keepAliveSeconds)
sessionBuilder.renegotiatesAfter = try cfgContainer.decodeIfPresent(TimeInterval.self, forKey: .renegotiatesAfterSeconds) sessionBuilder.renegotiatesAfter = try cfgContainer.decodeIfPresent(TimeInterval.self, forKey: .renegotiatesAfterSeconds)
sessionBuilder.usesPIAPatches = try cfgContainer.decodeIfPresent(Bool.self, forKey: .usesPIAPatches) ?? false sessionBuilder.usesPIAPatches = try cfgContainer.decodeIfPresent(Bool.self, forKey: .usesPIAPatches) ?? false
@ -120,6 +123,7 @@ public struct InfrastructurePreset: Codable {
try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.clientCertificate, forKey: .clientCertificate) try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.clientCertificate, forKey: .clientCertificate)
try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.clientKey, forKey: .clientKey) try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.clientKey, forKey: .clientKey)
try cfgContainer.encode(configuration.sessionConfiguration.compressionFraming, forKey: .compressionFraming) try cfgContainer.encode(configuration.sessionConfiguration.compressionFraming, forKey: .compressionFraming)
try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.tlsWrap, forKey: .tlsWrap)
try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.keepAliveInterval, forKey: .keepAliveSeconds) try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.keepAliveInterval, forKey: .keepAliveSeconds)
try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.renegotiatesAfter, forKey: .renegotiatesAfterSeconds) try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.renegotiatesAfter, forKey: .renegotiatesAfterSeconds)
try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.usesPIAPatches, forKey: .usesPIAPatches) try cfgContainer.encodeIfPresent(configuration.sessionConfiguration.usesPIAPatches, forKey: .usesPIAPatches)

View File

@ -36,6 +36,10 @@ public struct Pool: Codable, Comparable, CustomStringConvertible {
case area case area
case num
case isFree = "free"
// case location // case location
case hostname case hostname
@ -51,6 +55,10 @@ public struct Pool: Codable, Comparable, CustomStringConvertible {
public let area: String? public let area: String?
public let num: String?
public let isFree: Bool?
// public let location: (Double, Double) // public let location: (Double, Double)
public let hostname: String public let hostname: String
@ -93,10 +101,17 @@ extension Pool {
public var localizedCountryArea: String { public var localizedCountryArea: String {
let countryString = localizedCountry let countryString = localizedCountry
guard let area = area else { let zone: String
if let area = area, let num = num {
zone = "\(area) #\(num)"
} else if let area = area {
zone = area
} else if let num = num {
zone = "#\(num)"
} else {
return countryString return countryString
} }
return String.init(format: Pool.localizedFormat, countryString, area.uppercased()) return String.init(format: Pool.localizedFormat, countryString, zone.uppercased())
} }
public var localizedName: String { public var localizedName: String {