Handle --keepalive option
This commit is contained in:
parent
decc82fb9f
commit
430e0e6afb
|
@ -10,6 +10,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
### Added
|
||||
|
||||
- WireGuard support. [#236](https://github.com/passepartoutvpn/tunnelkit/pull/236)
|
||||
- Handle `--keepalive` option.
|
||||
|
||||
## 4.0.3 (2021-11-27)
|
||||
|
||||
|
|
|
@ -60,6 +60,8 @@ extension OpenVPN {
|
|||
|
||||
static let pingRestart = NSRegularExpression("^ping-restart +\\d+")
|
||||
|
||||
static let keepAlive = NSRegularExpression("^keepalive +\\d+ ++\\d+")
|
||||
|
||||
static let renegSec = NSRegularExpression("^reneg-sec +\\d+")
|
||||
|
||||
static let xorMask = NSRegularExpression("^scramble +xormask +.$")
|
||||
|
@ -457,6 +459,14 @@ extension OpenVPN {
|
|||
}
|
||||
optKeepAliveTimeoutSeconds = TimeInterval(arg)
|
||||
}
|
||||
Regex.keepAlive.enumerateArguments(in: line) {
|
||||
isHandled = true
|
||||
guard let ping = $0.first, let pingRestart = $0.last else {
|
||||
return
|
||||
}
|
||||
optKeepAliveSeconds = TimeInterval(ping)
|
||||
optKeepAliveTimeoutSeconds = TimeInterval(pingRestart)
|
||||
}
|
||||
Regex.renegSec.enumerateArguments(in: line) {
|
||||
isHandled = true
|
||||
guard let arg = $0.first else {
|
||||
|
|
|
@ -50,6 +50,16 @@ class ConfigurationParserTests: XCTestCase {
|
|||
XCTAssertNoThrow(try OpenVPN.ConfigurationParser.parsed(fromLines: ["compress lzo"]))
|
||||
}
|
||||
|
||||
func testKeepAlive() throws {
|
||||
let cfg1 = try OpenVPN.ConfigurationParser.parsed(fromLines: ["ping 10", "ping-restart 60"])
|
||||
let cfg2 = try OpenVPN.ConfigurationParser.parsed(fromLines: ["keepalive 10 60"])
|
||||
let cfg3 = try OpenVPN.ConfigurationParser.parsed(fromLines: ["keepalive 15 600"])
|
||||
XCTAssertEqual(cfg1.configuration.keepAliveInterval, cfg2.configuration.keepAliveInterval)
|
||||
XCTAssertEqual(cfg1.configuration.keepAliveTimeout, cfg2.configuration.keepAliveTimeout)
|
||||
XCTAssertNotEqual(cfg1.configuration.keepAliveInterval, cfg3.configuration.keepAliveInterval)
|
||||
XCTAssertNotEqual(cfg1.configuration.keepAliveTimeout, cfg3.configuration.keepAliveTimeout)
|
||||
}
|
||||
|
||||
func testDHCPOption() throws {
|
||||
let lines = [
|
||||
"dhcp-option DNS 8.8.8.8",
|
||||
|
|
Loading…
Reference in New Issue