From a195d65e965817ac31fea6823bb44cb930805a08 Mon Sep 17 00:00:00 2001 From: Sergey Abramchuk Date: Sun, 30 Apr 2017 18:25:48 +0300 Subject: [PATCH] Return session token --- OpenVPN Adapter/OpenVPNAdapter+Public.h | 8 +++++++- OpenVPN Adapter/OpenVPNAdapter.mm | 9 ++++++++- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/OpenVPN Adapter/OpenVPNAdapter+Public.h b/OpenVPN Adapter/OpenVPNAdapter+Public.h index d86baef..7adb60d 100644 --- a/OpenVPN Adapter/OpenVPNAdapter+Public.h +++ b/OpenVPN Adapter/OpenVPNAdapter+Public.h @@ -13,6 +13,7 @@ @class OpenVPNProperties; @class OpenVPNCredentials; @class OpenVPNConnectionInfo; +@class OpenVPNSessionToken; @class OpenVPNTransportStats; @class OpenVPNInterfaceStats; @class NEPacketTunnelNetworkSettings; @@ -104,10 +105,15 @@ NS_SWIFT_NAME(handle(logMessage:)); /** Return information about the most recent connection. Will be available - after an event of type "CONNECTED, otherwise return nil. + after an event of type "OpenVPNEventConnected, otherwise return nil. */ @property (nullable, readonly, nonatomic) OpenVPNConnectionInfo *connectionInfo; +/** + Return current session token or nil if session token is unavailable + */ +@property (nullable, readonly, nonatomic) OpenVPNSessionToken *sessionToken; + /** Return transport stats */ diff --git a/OpenVPN Adapter/OpenVPNAdapter.mm b/OpenVPN Adapter/OpenVPNAdapter.mm index 9f08cef..526fd44 100644 --- a/OpenVPN Adapter/OpenVPNAdapter.mm +++ b/OpenVPN Adapter/OpenVPNAdapter.mm @@ -21,6 +21,7 @@ #import "OpenVPNCredentials+Internal.h" #import "OpenVPNProperties+Internal.h" #import "OpenVPNConnectionInfo+Internal.h" +#import "OpenVPNSessionToken+Internal.h" #import "OpenVPNTransportStats+Internal.h" #import "OpenVPNInterfaceStats+Internal.h" #import "OpenVPNAdapter.h" @@ -136,11 +137,17 @@ NSString * const OpenVPNAdapterErrorEventKey = @"me.ss-abramchuk.openvpn-adapter } - (OpenVPNConnectionInfo *)connectionInfo { - // TODO: Check correctness of using "defined" property ClientAPI::ConnectionInfo info = self.vpnClient->connection_info(); return info.defined ? [[OpenVPNConnectionInfo alloc] initWithConnectionInfo:info] : nil; } +- (OpenVPNSessionToken *)sessionToken { + ClientAPI::SessionToken token; + bool gotToken = self.vpnClient->session_token(token); + + return gotToken ? [[OpenVPNSessionToken alloc] initWithSessionToken:token] : nil; +} + - (OpenVPNTransportStats *)transportStats { ClientAPI::TransportStats stats = self.vpnClient->transport_stats(); return [[OpenVPNTransportStats alloc] initWithTransportStats:stats];