Raise exception on unrecognized option values

Do not fall back when an unhandled value is found in:

- cipher
- auth
- proto

Falling back to a default value here would break the data
connection most of the time.
This commit is contained in:
Davide De Rosa 2018-10-18 10:23:46 +02:00
parent e0e44c4150
commit 4774c2705f
1 changed files with 9 additions and 0 deletions

View File

@ -132,6 +132,9 @@ extension TunnelKitProvider.Configuration {
return return
} }
defaultProto = TunnelKitProvider.SocketType(protoString: str) defaultProto = TunnelKitProvider.SocketType(protoString: str)
if defaultProto == nil {
unsupportedError = ApplicationError.unsupportedConfiguration(option: "proto \(str)")
}
} }
Regex.port.enumerateArguments(in: line) { Regex.port.enumerateArguments(in: line) {
guard let str = $0.first else { guard let str = $0.first else {
@ -158,12 +161,18 @@ extension TunnelKitProvider.Configuration {
return return
} }
cipher = SessionProxy.Cipher(rawValue: rawValue.uppercased()) cipher = SessionProxy.Cipher(rawValue: rawValue.uppercased())
if cipher == nil {
unsupportedError = ApplicationError.unsupportedConfiguration(option: "cipher \(rawValue)")
}
} }
Regex.auth.enumerateArguments(in: line) { Regex.auth.enumerateArguments(in: line) {
guard let rawValue = $0.first else { guard let rawValue = $0.first else {
return return
} }
digest = SessionProxy.Digest(rawValue: rawValue.uppercased()) digest = SessionProxy.Digest(rawValue: rawValue.uppercased())
if digest == nil {
unsupportedError = ApplicationError.unsupportedConfiguration(option: "auth \(rawValue)")
}
} }
Regex.compLZO.enumerateComponents(in: line) { _ in Regex.compLZO.enumerateComponents(in: line) { _ in
compressionFraming = .compLZO compressionFraming = .compLZO