From 3ba63e9a887ce2b135bcfb1d63bc3005516d7f60 Mon Sep 17 00:00:00 2001 From: Davide De Rosa Date: Thu, 11 Feb 2021 18:18:05 +0100 Subject: [PATCH] Extend peer info with IV_PLAT_VER Will then make them conditional based on --push-peer-info See #202 --- .../Protocols/OpenVPN/CoreConfiguration+OpenVPN.swift | 9 ++++++++- TunnelKit/Tests/OpenVPN/PushTests.swift | 5 +++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/TunnelKit/Sources/Protocols/OpenVPN/CoreConfiguration+OpenVPN.swift b/TunnelKit/Sources/Protocols/OpenVPN/CoreConfiguration+OpenVPN.swift index 2c45335..6f7ad8a 100644 --- a/TunnelKit/Sources/Protocols/OpenVPN/CoreConfiguration+OpenVPN.swift +++ b/TunnelKit/Sources/Protocols/OpenVPN/CoreConfiguration+OpenVPN.swift @@ -65,6 +65,7 @@ extension CoreConfiguration { static func peerInfo(extra: [String: String]? = nil) -> String { let platform: String + let platformVersion = ProcessInfo.processInfo.operatingSystemVersion #if os(iOS) platform = "ios" #else @@ -77,12 +78,18 @@ extension CoreConfiguration { "IV_UI_VER=\(uiVersion)", "IV_PROTO=2", "IV_NCP=2", - "IV_SSL=\(CryptoBox.version())", "IV_LZO_STUB=1", ] if LZOIsSupported() { info.append("IV_LZO=1") } + // XXX: always do --push-peer-info + // however, MAC is inaccessible and IFAD is deprecated, skip IV_HWADDR +// if pushPeerInfo { + if true { + info.append("IV_SSL=\(CryptoBox.version())") + info.append("IV_PLAT_VER=\(platformVersion.majorVersion).\(platformVersion.minorVersion)") + } if let extra = extra { info.append(contentsOf: extra.map { "\($0)=\($1)" }) } diff --git a/TunnelKit/Tests/OpenVPN/PushTests.swift b/TunnelKit/Tests/OpenVPN/PushTests.swift index 33312b0..d2b5c28 100644 --- a/TunnelKit/Tests/OpenVPN/PushTests.swift +++ b/TunnelKit/Tests/OpenVPN/PushTests.swift @@ -169,4 +169,9 @@ class PushTests: XCTestCase { let reply = try? OpenVPN.PushReply(message: msg)! reply?.debug() } + + func testPeerInfo() { + let peerInfo = CoreConfiguration.OpenVPN.peerInfo() + print(peerInfo) + } }