Tunnel: support getting runtime configuration

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
This commit is contained in:
Jason A. Donenfeld
2019-01-24 00:00:46 +01:00
parent ab3cbee6a2
commit 22625e8cc4
9 changed files with 278 additions and 0 deletions
@@ -40,6 +40,9 @@ class TunnelViewModel {
case endpoint
case persistentKeepAlive
case allowedIPs
case rxBytes
case txBytes
case lastHandshakeTime
case excludePrivateIPs
case deletePeer
@@ -50,6 +53,9 @@ class TunnelViewModel {
case .endpoint: return tr("tunnelPeerEndpoint")
case .persistentKeepAlive: return tr("tunnelPeerPersistentKeepalive")
case .allowedIPs: return tr("tunnelPeerAllowedIPs")
case .rxBytes: return tr("tunnelPeerRxBytes")
case .txBytes: return tr("tunnelPeerTxBytes")
case .lastHandshakeTime: return tr("tunnelPeerLastHandshakeTime")
case .excludePrivateIPs: return tr("tunnelPeerExcludePrivateIPs")
case .deletePeer: return tr("deletePeerButtonTitle")
}
@@ -248,6 +254,18 @@ class TunnelViewModel {
if let persistentKeepAlive = config.persistentKeepAlive {
scratchpad[.persistentKeepAlive] = String(persistentKeepAlive)
}
// TODO(roopc): These next 3 fields should be prettier
// - bytes() in https://git.zx2c4.com/WireGuard/tree/src/tools/show.c#n185
// - ago() in https://git.zx2c4.com/WireGuard/tree/src/tools/show.c#n158
if let rxBytes = config.rxBytes {
scratchpad[.rxBytes] = String(rxBytes)
}
if let txBytes = config.txBytes {
scratchpad[.txBytes] = String(txBytes)
}
if let lastHandshakeTime = config.lastHandshakeTime {
scratchpad[.lastHandshakeTime] = lastHandshakeTime.description
}
updateExcludePrivateIPsFieldState()
}