From 410ccdd916d4839eaf2a33bdd93837411cdc50ed Mon Sep 17 00:00:00 2001 From: Sergey Abramchuk Date: Wed, 26 Apr 2017 15:41:38 +0300 Subject: [PATCH] Wrap server entry --- OpenVPN Adapter.xcodeproj/project.pbxproj | 22 ++++++++++++++++-- OpenVPN Adapter/OpenVPNServerEntry+Internal.h | 19 +++++++++++++++ OpenVPN Adapter/OpenVPNServerEntry.h | 18 +++++++++++++++ OpenVPN Adapter/OpenVPNServerEntry.mm | 23 +++++++++++++++++++ OpenVPN Adapter/Umbrella-Header.h | 2 ++ 5 files changed, 82 insertions(+), 2 deletions(-) create mode 100644 OpenVPN Adapter/OpenVPNServerEntry+Internal.h create mode 100644 OpenVPN Adapter/OpenVPNServerEntry.h create mode 100644 OpenVPN Adapter/OpenVPNServerEntry.mm diff --git a/OpenVPN Adapter.xcodeproj/project.pbxproj b/OpenVPN Adapter.xcodeproj/project.pbxproj index 63fa09b..1f8cbb9 100644 --- a/OpenVPN Adapter.xcodeproj/project.pbxproj +++ b/OpenVPN Adapter.xcodeproj/project.pbxproj @@ -33,12 +33,18 @@ C9657A2F1EB0B79500EFF210 /* OpenVPNTransportStats+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A291EB0B6FA00EFF210 /* OpenVPNTransportStats+Internal.h */; }; C9657A301EB0B7A600EFF210 /* OpenVPNTransportStats.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9657A241EB0B60200EFF210 /* OpenVPNTransportStats.mm */; }; C9657A311EB0B7A900EFF210 /* OpenVPNTransportStats.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9657A241EB0B60200EFF210 /* OpenVPNTransportStats.mm */; }; - C9657A341EB0BA3900EFF210 /* OpenVPNInterfaceStats.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A321EB0BA3900EFF210 /* OpenVPNInterfaceStats.h */; }; - C9657A351EB0BA3900EFF210 /* OpenVPNInterfaceStats.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A321EB0BA3900EFF210 /* OpenVPNInterfaceStats.h */; }; + C9657A341EB0BA3900EFF210 /* OpenVPNInterfaceStats.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A321EB0BA3900EFF210 /* OpenVPNInterfaceStats.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9657A351EB0BA3900EFF210 /* OpenVPNInterfaceStats.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A321EB0BA3900EFF210 /* OpenVPNInterfaceStats.h */; settings = {ATTRIBUTES = (Public, ); }; }; C9657A361EB0BA3900EFF210 /* OpenVPNInterfaceStats.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9657A331EB0BA3900EFF210 /* OpenVPNInterfaceStats.mm */; }; C9657A371EB0BA3900EFF210 /* OpenVPNInterfaceStats.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9657A331EB0BA3900EFF210 /* OpenVPNInterfaceStats.mm */; }; C9657A3A1EB0BAAB00EFF210 /* OpenVPNInterfaceStats+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A381EB0BAAB00EFF210 /* OpenVPNInterfaceStats+Internal.h */; }; C9657A3B1EB0BAAB00EFF210 /* OpenVPNInterfaceStats+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A381EB0BAAB00EFF210 /* OpenVPNInterfaceStats+Internal.h */; }; + C9657A401EB0CAC200EFF210 /* OpenVPNServerEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A3E1EB0CAC200EFF210 /* OpenVPNServerEntry.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9657A411EB0CAC200EFF210 /* OpenVPNServerEntry.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A3E1EB0CAC200EFF210 /* OpenVPNServerEntry.h */; settings = {ATTRIBUTES = (Public, ); }; }; + C9657A421EB0CAC200EFF210 /* OpenVPNServerEntry.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9657A3F1EB0CAC200EFF210 /* OpenVPNServerEntry.mm */; }; + C9657A431EB0CAC200EFF210 /* OpenVPNServerEntry.mm in Sources */ = {isa = PBXBuildFile; fileRef = C9657A3F1EB0CAC200EFF210 /* OpenVPNServerEntry.mm */; }; + C9657A461EB0CB5900EFF210 /* OpenVPNServerEntry+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A441EB0CB5900EFF210 /* OpenVPNServerEntry+Internal.h */; }; + C9657A471EB0CB5900EFF210 /* OpenVPNServerEntry+Internal.h in Headers */ = {isa = PBXBuildFile; fileRef = C9657A441EB0CB5900EFF210 /* OpenVPNServerEntry+Internal.h */; }; C98467A21EAA559B00272A9A /* local_key_auth.ovpn in Resources */ = {isa = PBXBuildFile; fileRef = C98467A11EAA559B00272A9A /* local_key_auth.ovpn */; }; C98467A31EAA559B00272A9A /* local_key_auth.ovpn in Resources */ = {isa = PBXBuildFile; fileRef = C98467A11EAA559B00272A9A /* local_key_auth.ovpn */; }; C98467A61EAA5B7700272A9A /* OpenVPNConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = C98467A41EAA5B7700272A9A /* OpenVPNConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; }; @@ -123,6 +129,9 @@ C9657A321EB0BA3900EFF210 /* OpenVPNInterfaceStats.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenVPNInterfaceStats.h; sourceTree = ""; }; C9657A331EB0BA3900EFF210 /* OpenVPNInterfaceStats.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OpenVPNInterfaceStats.mm; sourceTree = ""; }; C9657A381EB0BAAB00EFF210 /* OpenVPNInterfaceStats+Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OpenVPNInterfaceStats+Internal.h"; sourceTree = ""; }; + C9657A3E1EB0CAC200EFF210 /* OpenVPNServerEntry.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenVPNServerEntry.h; sourceTree = ""; }; + C9657A3F1EB0CAC200EFF210 /* OpenVPNServerEntry.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OpenVPNServerEntry.mm; sourceTree = ""; }; + C9657A441EB0CB5900EFF210 /* OpenVPNServerEntry+Internal.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "OpenVPNServerEntry+Internal.h"; sourceTree = ""; }; C98467A11EAA559B00272A9A /* local_key_auth.ovpn */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = local_key_auth.ovpn; sourceTree = ""; }; C98467A41EAA5B7700272A9A /* OpenVPNConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = OpenVPNConfiguration.h; sourceTree = ""; }; C98467A51EAA5B7700272A9A /* OpenVPNConfiguration.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OpenVPNConfiguration.mm; sourceTree = ""; }; @@ -295,6 +304,9 @@ C93779D31EAE32670030A362 /* OpenVPNCredentials.h */, C93779D91EAE32880030A362 /* OpenVPNCredentials+Internal.h */, C93779D41EAE32670030A362 /* OpenVPNCredentials.mm */, + C9657A3E1EB0CAC200EFF210 /* OpenVPNServerEntry.h */, + C9657A441EB0CB5900EFF210 /* OpenVPNServerEntry+Internal.h */, + C9657A3F1EB0CAC200EFF210 /* OpenVPNServerEntry.mm */, C9657A151EB0A7F800EFF210 /* OpenVPNConnectionInfo.h */, C9657A1B1EB0A8D800EFF210 /* OpenVPNConnectionInfo+Internal.h */, C9657A161EB0A7F800EFF210 /* OpenVPNConnectionInfo.mm */, @@ -393,6 +405,7 @@ C9BB47721E7171A100F3F98C /* OpenVPNEvent.h in Headers */, C9BB477F1E7173C700F3F98C /* OpenVPNAdapter.h in Headers */, C9657A341EB0BA3900EFF210 /* OpenVPNInterfaceStats.h in Headers */, + C9657A401EB0CAC200EFF210 /* OpenVPNServerEntry.h in Headers */, C98467AB1EAA5BE100272A9A /* OpenVPNConfiguration+Internal.h in Headers */, C98467A61EAA5B7700272A9A /* OpenVPNConfiguration.h in Headers */, C93779CE1EAE17F50030A362 /* OpenVPNConfigurationValues.h in Headers */, @@ -406,6 +419,7 @@ C93779D51EAE32670030A362 /* OpenVPNCredentials.h in Headers */, C9FD921A1E9A667600374FC4 /* ovpncli.hpp in Headers */, C93779DB1EAE32880030A362 /* OpenVPNCredentials+Internal.h in Headers */, + C9657A461EB0CB5900EFF210 /* OpenVPNServerEntry+Internal.h in Headers */, C9657A251EB0B60200EFF210 /* OpenVPNTransportStats.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -419,6 +433,7 @@ C9D2ABE41EA20F99007EDF9D /* OpenVPNEvent.h in Headers */, C9D2ABE51EA20F99007EDF9D /* OpenVPNAdapter.h in Headers */, C9657A351EB0BA3900EFF210 /* OpenVPNInterfaceStats.h in Headers */, + C9657A411EB0CAC200EFF210 /* OpenVPNServerEntry.h in Headers */, C98467AC1EAA5BE200272A9A /* OpenVPNConfiguration+Internal.h in Headers */, C98467A71EAA5B7700272A9A /* OpenVPNConfiguration.h in Headers */, C93779D01EAE18730030A362 /* OpenVPNConfigurationValues.h in Headers */, @@ -432,6 +447,7 @@ C93779D61EAE32670030A362 /* OpenVPNCredentials.h in Headers */, C9D2ABEA1EA20F99007EDF9D /* ovpncli.hpp in Headers */, C93779DC1EAE32880030A362 /* OpenVPNCredentials+Internal.h in Headers */, + C9657A471EB0CB5900EFF210 /* OpenVPNServerEntry+Internal.h in Headers */, C9657A261EB0B60200EFF210 /* OpenVPNTransportStats.h in Headers */, ); runOnlyForDeploymentPostprocessing = 0; @@ -630,6 +646,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C9657A421EB0CAC200EFF210 /* OpenVPNServerEntry.mm in Sources */, C9BB47821E7173C700F3F98C /* OpenVPNAdapter.mm in Sources */, C98467A81EAA5B7700272A9A /* OpenVPNConfiguration.mm in Sources */, C9657A311EB0B7A900EFF210 /* OpenVPNTransportStats.mm in Sources */, @@ -657,6 +674,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + C9657A431EB0CAC200EFF210 /* OpenVPNServerEntry.mm in Sources */, C9D2ABDB1EA20F99007EDF9D /* OpenVPNAdapter.mm in Sources */, C98467A91EAA5B7700272A9A /* OpenVPNConfiguration.mm in Sources */, C9657A301EB0B7A600EFF210 /* OpenVPNTransportStats.mm in Sources */, diff --git a/OpenVPN Adapter/OpenVPNServerEntry+Internal.h b/OpenVPN Adapter/OpenVPNServerEntry+Internal.h new file mode 100644 index 0000000..e8685f5 --- /dev/null +++ b/OpenVPN Adapter/OpenVPNServerEntry+Internal.h @@ -0,0 +1,19 @@ +// +// OpenVPNServerEntry+Internal.h +// OpenVPN Adapter +// +// Created by Sergey Abramchuk on 26.04.17. +// +// + +#import + +#import "OpenVPNServerEntry.h" + +using namespace openvpn; + +@interface OpenVPNServerEntry (Internal) + +- (instancetype)initWithServerEntry:(ClientAPI::ServerEntry)entry; + +@end diff --git a/OpenVPN Adapter/OpenVPNServerEntry.h b/OpenVPN Adapter/OpenVPNServerEntry.h new file mode 100644 index 0000000..75ecb40 --- /dev/null +++ b/OpenVPN Adapter/OpenVPNServerEntry.h @@ -0,0 +1,18 @@ +// +// OpenVPNServerEntry.h +// OpenVPN Adapter +// +// Created by Sergey Abramchuk on 26.04.17. +// +// + +#import + +@interface OpenVPNServerEntry : NSObject + +@property (nullable, readonly, nonatomic) NSString *server; +@property (nullable, readonly, nonatomic) NSString *friendlyName; + +- (nonnull instancetype) __unavailable init; + +@end diff --git a/OpenVPN Adapter/OpenVPNServerEntry.mm b/OpenVPN Adapter/OpenVPNServerEntry.mm new file mode 100644 index 0000000..b87e7d0 --- /dev/null +++ b/OpenVPN Adapter/OpenVPNServerEntry.mm @@ -0,0 +1,23 @@ +// +// OpenVPNServerEntry.mm +// OpenVPN Adapter +// +// Created by Sergey Abramchuk on 26.04.17. +// +// + +#import "OpenVPNServerEntry.h" +#import "OpenVPNServerEntry+Internal.h" + +@implementation OpenVPNServerEntry + +- (instancetype)initWithServerEntry:(ClientAPI::ServerEntry)entry { + self = [super init]; + if (self) { + _server = !entry.server.empty() ? [NSString stringWithUTF8String:entry.server.c_str()] : nil; + _friendlyName = !entry.friendlyName.empty() ? [NSString stringWithUTF8String:entry.friendlyName.c_str()] : nil; + } + return self; +} + +@end diff --git a/OpenVPN Adapter/Umbrella-Header.h b/OpenVPN Adapter/Umbrella-Header.h index a258bfe..70961a4 100644 --- a/OpenVPN Adapter/Umbrella-Header.h +++ b/OpenVPN Adapter/Umbrella-Header.h @@ -20,7 +20,9 @@ FOUNDATION_EXPORT const unsigned char OpenVPNAdapterVersionString[]; #import #import #import +#import #import #import +#import #import #import