parent
9cb8cf92ca
commit
0b7ab7bca6
|
@ -37,6 +37,8 @@ struct ParsedFile {
|
||||||
let configuration: TunnelKitProvider.Configuration
|
let configuration: TunnelKitProvider.Configuration
|
||||||
|
|
||||||
let strippedLines: [String]?
|
let strippedLines: [String]?
|
||||||
|
|
||||||
|
let warning: ApplicationError?
|
||||||
}
|
}
|
||||||
|
|
||||||
extension TunnelKitProvider.Configuration {
|
extension TunnelKitProvider.Configuration {
|
||||||
|
@ -78,6 +80,7 @@ extension TunnelKitProvider.Configuration {
|
||||||
static func parsed(from url: URL, returnsStripped: Bool = false) throws -> ParsedFile {
|
static func parsed(from url: URL, returnsStripped: Bool = false) throws -> ParsedFile {
|
||||||
let lines = try String(contentsOf: url).trimmedLines()
|
let lines = try String(contentsOf: url).trimmedLines()
|
||||||
var strippedLines: [String]? = returnsStripped ? [] : nil
|
var strippedLines: [String]? = returnsStripped ? [] : nil
|
||||||
|
var warning: ApplicationError? = nil
|
||||||
|
|
||||||
var defaultProto: TunnelKitProvider.SocketType?
|
var defaultProto: TunnelKitProvider.SocketType?
|
||||||
var defaultPort: UInt16?
|
var defaultPort: UInt16?
|
||||||
|
@ -221,13 +224,23 @@ extension TunnelKitProvider.Configuration {
|
||||||
unsupportedError = ApplicationError.unsupportedConfiguration(option: "auth \(rawValue)")
|
unsupportedError = ApplicationError.unsupportedConfiguration(option: "auth \(rawValue)")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Regex.compLZO.enumerateComponents(in: line) { _ in
|
Regex.compLZO.enumerateArguments(in: line) {
|
||||||
isHandled = true
|
isHandled = true
|
||||||
compressionFraming = .compLZO
|
compressionFraming = .compLZO
|
||||||
|
|
||||||
|
guard let arg = $0.first, arg == "no" else {
|
||||||
|
warning = .unsupportedConfiguration(option: "compression")
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Regex.compress.enumerateComponents(in: line) { _ in
|
Regex.compress.enumerateArguments(in: line) {
|
||||||
isHandled = true
|
isHandled = true
|
||||||
compressionFraming = .compress
|
compressionFraming = .compress
|
||||||
|
|
||||||
|
guard $0.isEmpty else {
|
||||||
|
warning = .unsupportedConfiguration(option: "compression")
|
||||||
|
return
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Regex.keyDirection.enumerateArguments(in: line) {
|
Regex.keyDirection.enumerateArguments(in: line) {
|
||||||
isHandled = true
|
isHandled = true
|
||||||
|
@ -325,7 +338,13 @@ extension TunnelKitProvider.Configuration {
|
||||||
var builder = TunnelKitProvider.ConfigurationBuilder(sessionConfiguration: sessionBuilder.build())
|
var builder = TunnelKitProvider.ConfigurationBuilder(sessionConfiguration: sessionBuilder.build())
|
||||||
builder.endpointProtocols = endpointProtocols
|
builder.endpointProtocols = endpointProtocols
|
||||||
|
|
||||||
return ParsedFile(url: url, hostname: hostname, configuration: builder.build(), strippedLines: strippedLines)
|
return ParsedFile(
|
||||||
|
url: url,
|
||||||
|
hostname: hostname,
|
||||||
|
configuration: builder.build(),
|
||||||
|
strippedLines: strippedLines,
|
||||||
|
warning: warning
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue