mirror of
https://github.com/deneraraujo/OpenVPNAdapter.git
synced 2026-04-24 00:00:05 +08:00
Merge branch 'feature/spm' into develop
This commit is contained in:
@@ -49,6 +49,11 @@ playground.xcworkspace
|
|||||||
|
|
||||||
Carthage/Build
|
Carthage/Build
|
||||||
|
|
||||||
|
# Swift PM
|
||||||
|
|
||||||
|
.build/
|
||||||
|
.swiftpm
|
||||||
|
|
||||||
## macOS generated
|
## macOS generated
|
||||||
|
|
||||||
# General
|
# General
|
||||||
|
|||||||
@@ -1,6 +0,0 @@
|
|||||||
#include "Framework.xcconfig"
|
|
||||||
|
|
||||||
ONLY_ACTIVE_ARCH = YES
|
|
||||||
SWIFT_OPTIMIZATION_LEVEL = -Onone
|
|
||||||
SWIFT_ACTIVE_COMPILATION_CONDITIONS = $(inherited) DEBUG
|
|
||||||
BITCODE_GENERATION_MODE = marker
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
PRODUCT_NAME = OpenVPNAdapter
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = me.ss-abramchuk.openvpn-adapter
|
|
||||||
INFOPLIST_FILE = Configuration/Info-Framework.plist
|
|
||||||
MODULEMAP_FILE = Configuration/OpenVPNAdapter.modulemap
|
|
||||||
DYLIB_CURRENT_VERSION = $(CURRENT_PROJECT_VERSION)
|
|
||||||
APPLICATION_EXTENSION_API_ONLY = YES
|
|
||||||
CLANG_CXX_LANGUAGE_STANDARD = gnu++14
|
|
||||||
CLANG_CXX_LIBRARY = libc++
|
|
||||||
VENDORS_DIR = $(PROJECT_DIR)/Sources/OpenVPNAdapter/Libraries/Vendors
|
|
||||||
HEADER_SEARCH_PATHS = "$(VENDORS_DIR)/asio/asio/include" "$(VENDORS_DIR)/lz4/include" "$(VENDORS_DIR)/mbedtls/include" "$(VENDORS_DIR)/openvpn"
|
|
||||||
LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*] = "$(VENDORS_DIR)/lz4/lib/ios" "$(VENDORS_DIR)/mbedtls/lib/ios"
|
|
||||||
LIBRARY_SEARCH_PATHS[sdk=iphoneos*] = "$(VENDORS_DIR)/lz4/lib/ios" "$(VENDORS_DIR)/mbedtls/lib/ios"
|
|
||||||
LIBRARY_SEARCH_PATHS[sdk=macosx*] = "$(VENDORS_DIR)/lz4/lib/macos" "$(VENDORS_DIR)/mbedtls/lib/macos"
|
|
||||||
OTHER_LDFLAGS = -lmbedtls -lmbedx509 -lmbedcrypto -llz4
|
|
||||||
OTHER_CPLUSPLUSFLAGS = $(OTHER_CFLAGS) -DUSE_ASIO -DUSE_ASIO_THREADLOCAL -DASIO_STANDALONE -DASIO_NO_DEPRECATED -DASIO_HAS_STD_STRING_VIEW -DHAVE_LZ4 -DUSE_MBEDTLS -DOPENVPN_FORCE_TUN_NULL -DUSE_TUN_BUILDER
|
|
||||||
GCC_WARN_64_TO_32_BIT_CONVERSION = NO
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) XXH_NAMESPACE=LZ4_
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
MODULEMAP_FILE = Sources/OpenVPNAdapter/module.modulemap
|
||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) USE_ASIO
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = NO
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) USE_ASIO USE_ASIO_THREADLOCAL ASIO_STANDALONE ASIO_NO_DEPRECATED ASIO_HAS_STD_STRING_VIEW USE_MBEDTLS HAVE_LZ4 OPENVPN_FORCE_TUN_NULL USE_TUN_BUILDER
|
||||||
|
GCC_WARN_64_TO_32_BIT_CONVERSION = NO
|
||||||
@@ -1,24 +1,31 @@
|
|||||||
SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx
|
SUPPORTED_PLATFORMS = iphoneos iphonesimulator macosx
|
||||||
TARGETED_DEVICE_FAMILY = 1,2
|
TARGETED_DEVICE_FAMILY = 1,2
|
||||||
|
|
||||||
|
HEADER_SEARCH_PATHS = $(inherited) $(SRCROOT)/Sources/OpenVPNAdapter/include $(SRCROOT)/Sources/OpenVPNClient/include $(SRCROOT)/Sources/LZ4/include $(SRCROOT)/Sources/mbedTLS/include $(SRCROOT)/Sources/ASIO/asio/include $(SRCROOT)/Sources/OpenVPN3
|
||||||
|
|
||||||
|
CLANG_CXX_LANGUAGE_STANDARD = gnu++14
|
||||||
|
CLANG_CXX_LIBRARY = libc++
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// iOS-specific settings
|
// iOS-specific settings
|
||||||
//
|
//
|
||||||
IPHONEOS_DEPLOYMENT_TARGET = 9.0
|
IPHONEOS_DEPLOYMENT_TARGET = 9.0
|
||||||
|
|
||||||
|
SDKROOT[arch=arm64] = iphoneos
|
||||||
|
SDKROOT[arch=armv7] = iphoneos
|
||||||
|
SDKROOT[arch=armv7s] = iphoneos
|
||||||
|
|
||||||
VALID_ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s
|
VALID_ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s
|
||||||
VALID_ARCHS[sdk=iphonesimulator*] = i386 x86_64
|
VALID_ARCHS[sdk=iphonesimulator*] = i386 x86_64
|
||||||
|
|
||||||
LD_RUNPATH_SEARCH_PATHS[sdk=iphoneos*] = @executable_path/Frameworks @loader_path/Frameworks
|
|
||||||
LD_RUNPATH_SEARCH_PATHS[sdk=iphonesimulator*] = @executable_path/Frameworks @loader_path/Frameworks
|
|
||||||
|
|
||||||
////////////////////////////////////////////////////////////////////////////////
|
////////////////////////////////////////////////////////////////////////////////
|
||||||
//
|
//
|
||||||
// macOS-specific settings
|
// macOS-specific settings
|
||||||
//
|
//
|
||||||
MACOSX_DEPLOYMENT_TARGET = 10.11
|
MACOSX_DEPLOYMENT_TARGET = 10.11
|
||||||
|
|
||||||
VALID_ARCHS[sdk=macosx*] = i386 x86_64
|
SDKROOT[arch=i386] = macosx
|
||||||
|
SDKROOT[arch=x86_64] = macosx
|
||||||
|
|
||||||
LD_RUNPATH_SEARCH_PATHS[sdk=macosx*] = @executable_path/../Frameworks @loader_path/../Frameworks
|
VALID_ARCHS[sdk=macosx*] = i386 x86_64
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
#include "Framework.xcconfig"
|
|
||||||
|
|
||||||
ONLY_ACTIVE_ARCH = NO
|
|
||||||
SWIFT_OPTIMIZATION_LEVEL = -Owholemodule
|
|
||||||
BITCODE_GENERATION_MODE = bitcode
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
PRODUCT_NAME = OpenVPNAdapterTests
|
|
||||||
PRODUCT_BUNDLE_IDENTIFIER = me.ss-abramchuk.openvpn-adapter.tests
|
|
||||||
INFOPLIST_FILE = Configuration/Info-Tests.plist
|
|
||||||
SWIFT_OPTIMIZATION_LEVEL = -Onone
|
|
||||||
ONLY_ACTIVE_ARCH = YES
|
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) MBEDTLS_MD4_C MBEDTLS_RELAXED_X509_DATE _FILE_OFFSET_BITS=64
|
||||||
+33
-79
@@ -35,116 +35,70 @@ Pod::Spec.new do |s|
|
|||||||
s.source = { :git => "https://github.com/ss-abramchuk/OpenVPNAdapter.git", :tag => "#{s.version}" }
|
s.source = { :git => "https://github.com/ss-abramchuk/OpenVPNAdapter.git", :tag => "#{s.version}" }
|
||||||
|
|
||||||
|
|
||||||
# ――― Source Code ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
|
||||||
|
|
||||||
framework_path = "Sources/OpenVPNAdapter"
|
|
||||||
vendors_path = "#{framework_path}/Libraries/Vendors"
|
|
||||||
|
|
||||||
s.source_files = "#{framework_path}/*.{h,m,mm}"
|
|
||||||
|
|
||||||
s.public_header_files = "#{framework_path}/*.h"
|
|
||||||
s.private_header_files = [
|
|
||||||
"#{framework_path}/*+Internal.h",
|
|
||||||
"#{framework_path}/OpenVPNReachabilityTracker.h",
|
|
||||||
"#{framework_path}/OpenVPNClient.h",
|
|
||||||
"#{framework_path}/OpenVPNNetworkSettingsBuilder.h",
|
|
||||||
"#{framework_path}/OpenVPNPacket.h",
|
|
||||||
"#{framework_path}/OpenVPNPacketFlowBridge.h",
|
|
||||||
"#{framework_path}/NSError+OpenVPNError.h",
|
|
||||||
"#{framework_path}/NSArray+OpenVPNAdditions.h"
|
|
||||||
]
|
|
||||||
|
|
||||||
s.module_map = "Configuration/OpenVPNAdapter.modulemap"
|
|
||||||
|
|
||||||
|
|
||||||
# ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
# ――― Project Linking ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||||
|
|
||||||
s.ios.frameworks = "Foundation", "NetworkExtension", "SystemConfiguration", "UIKit"
|
s.ios.frameworks = "Foundation", "NetworkExtension", "SystemConfiguration", "UIKit"
|
||||||
s.osx.frameworks = "Foundation", "NetworkExtension", "SystemConfiguration"
|
s.osx.frameworks = "Foundation", "NetworkExtension", "SystemConfiguration"
|
||||||
|
|
||||||
s.libraries = "lz4", "mbedcrypto", "mbedtls", "mbedx509"
|
|
||||||
|
|
||||||
|
|
||||||
# ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
# ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||||
|
|
||||||
s.requires_arc = true
|
s.requires_arc = true
|
||||||
s.prefix_header_file = false
|
s.prefix_header_file = false
|
||||||
|
|
||||||
|
adapter_path = "Sources/OpenVPNAdapter"
|
||||||
|
asio_path = "Sources/ASIO"
|
||||||
|
lz4_path = "Sources/LZ4"
|
||||||
|
mbedtls_path = "Sources/mbedTLS"
|
||||||
|
openvpn_path = "Sources/OpenVPN3"
|
||||||
|
client_path = "Sources/OpenVPNClient"
|
||||||
|
|
||||||
s.xcconfig = {
|
s.xcconfig = {
|
||||||
"APPLICATION_EXTENSION_API_ONLY" => "YES",
|
"APPLICATION_EXTENSION_API_ONLY" => "YES",
|
||||||
"CLANG_CXX_LANGUAGE_STANDARD" => "gnu++14",
|
"CLANG_CXX_LANGUAGE_STANDARD" => "gnu++14",
|
||||||
"CLANG_CXX_LIBRARY" => "libc++",
|
"CLANG_CXX_LIBRARY" => "libc++",
|
||||||
"GCC_WARN_64_TO_32_BIT_CONVERSION" => "NO",
|
"GCC_WARN_64_TO_32_BIT_CONVERSION" => "NO",
|
||||||
"CLANG_WARN_DOCUMENTATION_COMMENTS" => "NO"
|
"CLANG_WARN_DOCUMENTATION_COMMENTS" => "NO",
|
||||||
|
"HEADER_SEARCH_PATHS" => "\"${PODS_TARGET_SRCROOT}/#{asio_path}/asio/include/**\" \"${PODS_TARGET_SRCROOT}/#{mbedtls_path}/include/**\" \"${PODS_TARGET_SRCROOT}/#{openvpn_path}/**\""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
# ――― Subspecs ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
# ――― Subspecs ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||||
|
|
||||||
s.subspec "lz4" do |lz4|
|
s.subspec "OpenVPNAdapter" do |adapter|
|
||||||
lz4_path = "#{vendors_path}/lz4"
|
adapter.source_files = "#{adapter_path}/library/*.{h,m,mm}", "#{adapter_path}/include/*.h"
|
||||||
|
adapter.public_header_files = "#{adapter_path}/include/*.h"
|
||||||
|
|
||||||
lz4.preserve_paths = "#{lz4_path}/include/*.h"
|
adapter.compiler_flags = "-DUSE_ASIO"
|
||||||
|
|
||||||
lz4.ios.vendored_libraries = [
|
|
||||||
"#{lz4_path}/lib/ios/liblz4.a"
|
|
||||||
]
|
|
||||||
|
|
||||||
lz4.osx.vendored_libraries = [
|
|
||||||
"#{lz4_path}/lib/macos/liblz4.a"
|
|
||||||
]
|
|
||||||
|
|
||||||
lz4.xcconfig = {
|
|
||||||
"HEADER_SEARCH_PATHS" => "${PODS_TARGET_SRCROOT}/#{lz4_path}/include/**"
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
s.subspec "mbedtls" do |mbedtls|
|
s.subspec "ASIO" do |asio|
|
||||||
mbedtls_path = "#{vendors_path}/mbedtls"
|
|
||||||
|
|
||||||
mbedtls.preserve_paths = "#{mbedtls_path}/include/**/*.h"
|
|
||||||
|
|
||||||
mbedtls.ios.vendored_libraries = [
|
|
||||||
"#{mbedtls_path}/lib/ios/libmbedcrypto.a",
|
|
||||||
"#{mbedtls_path}/lib/ios/libmbedtls.a",
|
|
||||||
"#{mbedtls_path}/lib/ios/libmbedx509.a"
|
|
||||||
]
|
|
||||||
|
|
||||||
mbedtls.osx.vendored_libraries = [
|
|
||||||
"#{mbedtls_path}/lib/macos/libmbedcrypto.a",
|
|
||||||
"#{mbedtls_path}/lib/macos/libmbedtls.a",
|
|
||||||
"#{mbedtls_path}/lib/macos/libmbedx509.a"
|
|
||||||
]
|
|
||||||
|
|
||||||
mbedtls.xcconfig = {
|
|
||||||
"HEADER_SEARCH_PATHS" => "${PODS_TARGET_SRCROOT}/#{mbedtls_path}/include/**"
|
|
||||||
}
|
|
||||||
end
|
|
||||||
|
|
||||||
s.subspec "asio" do |asio|
|
|
||||||
asio_path = "#{vendors_path}/asio"
|
|
||||||
|
|
||||||
asio.preserve_paths = "#{asio_path}/asio/include/**/*.{hpp,ipp}"
|
asio.preserve_paths = "#{asio_path}/asio/include/**/*.{hpp,ipp}"
|
||||||
|
|
||||||
asio.xcconfig = {
|
|
||||||
"HEADER_SEARCH_PATHS" => "${PODS_TARGET_SRCROOT}/#{asio_path}/asio/include/**"
|
|
||||||
}
|
|
||||||
end
|
end
|
||||||
|
|
||||||
s.subspec "openvpn" do |openvpn|
|
s.subspec "LZ4" do |lz4|
|
||||||
openvpn_path = "#{vendors_path}/openvpn"
|
lz4.source_files = "#{lz4_path}/lib/*.{h,c}",
|
||||||
|
lz4.private_header_files = "#{lz4_path}/lib/*.{h,c}"
|
||||||
|
|
||||||
openvpn.source_files = "#{openvpn_path}/client/*.{hpp,cpp}"
|
lz4.compiler_flags = "-DXXH_NAMESPACE=LZ4_"
|
||||||
openvpn.private_header_files = "#{openvpn_path}/client/*.hpp"
|
end
|
||||||
|
|
||||||
openvpn.preserve_paths = "#{openvpn_path}/openvpn/**/*.hpp"
|
s.subspec "mbedTLS" do |mbedtls|
|
||||||
|
mbedtls.source_files = "#{mbedtls_path}/library/*.{c}"
|
||||||
|
mbedtls.preserve_paths = "#{mbedtls_path}/include/**/*.{h}"
|
||||||
|
|
||||||
openvpn.compiler_flags = "-x objective-c++"
|
mbedtls.compiler_flags = "-DMBEDTLS_MD4_C", "-DMBEDTLS_RELAXED_X509_DATE", "-D_FILE_OFFSET_BITS=64"
|
||||||
|
end
|
||||||
|
|
||||||
openvpn.xcconfig = {
|
s.subspec "OpenVPN3" do |openvpn|
|
||||||
"HEADER_SEARCH_PATHS" => "${PODS_TARGET_SRCROOT}/#{openvpn_path}/**",
|
openvpn.preserve_paths = "#{openvpn_path}/openvpn/**/*.hpp", "#{openvpn_path}/client/*.{hpp,cpp}"
|
||||||
"OTHER_CPLUSPLUSFLAGS" => "$(OTHER_CFLAGS) -DUSE_ASIO -DUSE_ASIO_THREADLOCAL -DASIO_STANDALONE -DASIO_NO_DEPRECATED -DASIO_HAS_STD_STRING_VIEW -DHAVE_LZ4 -DUSE_MBEDTLS -DOPENVPN_FORCE_TUN_NULL -DUSE_TUN_BUILDER"
|
end
|
||||||
}
|
|
||||||
|
s.subspec "OpenVPNClient" do |client|
|
||||||
|
client.source_files = "#{client_path}/library/*.{mm}", "#{client_path}/include/*.{hpp}"
|
||||||
|
client.private_header_files = "#{client_path}/include/*.{hpp}"
|
||||||
|
|
||||||
|
client.compiler_flags = "-x objective-c++", "-DUSE_ASIO", "-DUSE_ASIO_THREADLOCAL", "-DASIO_STANDALONE", "-DASIO_NO_DEPRECATED", "-DASIO_HAS_STD_STRING_VIEW", "-DHAVE_LZ4", "-DUSE_MBEDTLS", "-DOPENVPN_FORCE_TUN_NULL", "-DUSE_TUN_BUILDER"
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -15,7 +15,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>FMWK</string>
|
<string>FMWK</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>0.4.0</string>
|
<string>$(MARKETING_VERSION)</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
<key>NSPrincipalClass</key>
|
<key>NSPrincipalClass</key>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>$(PRODUCT_NAME)</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>$(MARKETING_VERSION)</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>$(PRODUCT_NAME)</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>$(MARKETING_VERSION)</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
|
<plist version="1.0">
|
||||||
|
<dict>
|
||||||
|
<key>CFBundleDevelopmentRegion</key>
|
||||||
|
<string>en</string>
|
||||||
|
<key>CFBundleExecutable</key>
|
||||||
|
<string>$(EXECUTABLE_NAME)</string>
|
||||||
|
<key>CFBundleIdentifier</key>
|
||||||
|
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
|
||||||
|
<key>CFBundleInfoDictionaryVersion</key>
|
||||||
|
<string>6.0</string>
|
||||||
|
<key>CFBundleName</key>
|
||||||
|
<string>$(PRODUCT_NAME)</string>
|
||||||
|
<key>CFBundlePackageType</key>
|
||||||
|
<string>FMWK</string>
|
||||||
|
<key>CFBundleShortVersionString</key>
|
||||||
|
<string>$(MARKETING_VERSION)</string>
|
||||||
|
<key>CFBundleSignature</key>
|
||||||
|
<string>????</string>
|
||||||
|
<key>CFBundleVersion</key>
|
||||||
|
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||||
|
<key>NSPrincipalClass</key>
|
||||||
|
<string></string>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
+1482
-1239
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,6 @@
|
|||||||
<Workspace
|
<Workspace
|
||||||
version = "1.0">
|
version = "1.0">
|
||||||
<FileRef
|
<FileRef
|
||||||
location = "self:/Users/ss.abramchuk/Sources.localized/open-source.localized/openvpn-adapter/OpenVPNAdapter.xcodeproj">
|
location = "self:">
|
||||||
</FileRef>
|
</FileRef>
|
||||||
</Workspace>
|
</Workspace>
|
||||||
+5
-2
@@ -1,5 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||||
<plist version="1.0">
|
<plist version="1.0">
|
||||||
<dict/>
|
<dict>
|
||||||
</plist>
|
<key>IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded</key>
|
||||||
|
<false/>
|
||||||
|
</dict>
|
||||||
|
</plist>
|
||||||
@@ -1,100 +0,0 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<Scheme
|
|
||||||
LastUpgradeVersion = "1020"
|
|
||||||
version = "1.3">
|
|
||||||
<BuildAction
|
|
||||||
parallelizeBuildables = "YES"
|
|
||||||
buildImplicitDependencies = "YES">
|
|
||||||
<BuildActionEntries>
|
|
||||||
<BuildActionEntry
|
|
||||||
buildForTesting = "YES"
|
|
||||||
buildForRunning = "YES"
|
|
||||||
buildForProfiling = "YES"
|
|
||||||
buildForArchiving = "YES"
|
|
||||||
buildForAnalyzing = "YES">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "C9D2ABD81EA20F99007EDF9D"
|
|
||||||
BuildableName = "OpenVPNAdapter.framework"
|
|
||||||
BlueprintName = "OpenVPNAdapter macOS"
|
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</BuildActionEntry>
|
|
||||||
</BuildActionEntries>
|
|
||||||
</BuildAction>
|
|
||||||
<TestAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
codeCoverageEnabled = "YES"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "NO">
|
|
||||||
<Testables>
|
|
||||||
<TestableReference
|
|
||||||
skipped = "NO">
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "C9D2ABF21EA212A3007EDF9D"
|
|
||||||
BuildableName = "OpenVPNAdapterTests.xctest"
|
|
||||||
BlueprintName = "OpenVPNAdapter macOS Tests"
|
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</TestableReference>
|
|
||||||
</Testables>
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "C9D2ABD81EA20F99007EDF9D"
|
|
||||||
BuildableName = "OpenVPNAdapter.framework"
|
|
||||||
BlueprintName = "OpenVPNAdapter macOS"
|
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
|
||||||
<LaunchAction
|
|
||||||
buildConfiguration = "Debug"
|
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
|
||||||
launchStyle = "0"
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
ignoresPersistentStateOnLaunch = "NO"
|
|
||||||
debugDocumentVersioning = "YES"
|
|
||||||
debugServiceExtension = "internal"
|
|
||||||
allowLocationSimulation = "YES">
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "C9D2ABD81EA20F99007EDF9D"
|
|
||||||
BuildableName = "OpenVPNAdapter.framework"
|
|
||||||
BlueprintName = "OpenVPNAdapter macOS"
|
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
|
||||||
<ProfileAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES"
|
|
||||||
savedToolIdentifier = ""
|
|
||||||
useCustomWorkingDirectory = "NO"
|
|
||||||
debugDocumentVersioning = "YES">
|
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "C9D2ABD81EA20F99007EDF9D"
|
|
||||||
BuildableName = "OpenVPNAdapter.framework"
|
|
||||||
BlueprintName = "OpenVPNAdapter macOS"
|
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
</ProfileAction>
|
|
||||||
<AnalyzeAction
|
|
||||||
buildConfiguration = "Debug">
|
|
||||||
</AnalyzeAction>
|
|
||||||
<ArchiveAction
|
|
||||||
buildConfiguration = "Release"
|
|
||||||
revealArchiveInOrganizer = "YES">
|
|
||||||
</ArchiveAction>
|
|
||||||
</Scheme>
|
|
||||||
+55
-31
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<Scheme
|
<Scheme
|
||||||
LastUpgradeVersion = "1020"
|
LastUpgradeVersion = "9999"
|
||||||
version = "1.3">
|
version = "1.3">
|
||||||
<BuildAction
|
<BuildAction
|
||||||
parallelizeBuildables = "YES"
|
parallelizeBuildables = "YES"
|
||||||
@@ -14,9 +14,51 @@
|
|||||||
buildForAnalyzing = "YES">
|
buildForAnalyzing = "YES">
|
||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "C9BB475B1E71663A00F3F98C"
|
BlueprintIdentifier = "OpenVPNAdapter::mbedTLS"
|
||||||
|
BuildableName = "mbedTLS.framework"
|
||||||
|
BlueprintName = "mbedTLS"
|
||||||
|
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "OpenVPNAdapter::LZ4"
|
||||||
|
BuildableName = "LZ4.framework"
|
||||||
|
BlueprintName = "LZ4"
|
||||||
|
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "OpenVPNAdapter::OpenVPNClient"
|
||||||
|
BuildableName = "OpenVPNClient.framework"
|
||||||
|
BlueprintName = "OpenVPNClient"
|
||||||
|
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||||
|
</BuildableReference>
|
||||||
|
</BuildActionEntry>
|
||||||
|
<BuildActionEntry
|
||||||
|
buildForTesting = "YES"
|
||||||
|
buildForRunning = "YES"
|
||||||
|
buildForProfiling = "YES"
|
||||||
|
buildForArchiving = "YES"
|
||||||
|
buildForAnalyzing = "YES">
|
||||||
|
<BuildableReference
|
||||||
|
BuildableIdentifier = "primary"
|
||||||
|
BlueprintIdentifier = "OpenVPNAdapter::OpenVPNAdapter"
|
||||||
BuildableName = "OpenVPNAdapter.framework"
|
BuildableName = "OpenVPNAdapter.framework"
|
||||||
BlueprintName = "OpenVPNAdapter iOS"
|
BlueprintName = "OpenVPNAdapter"
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
</BuildActionEntry>
|
</BuildActionEntry>
|
||||||
@@ -26,31 +68,24 @@
|
|||||||
buildConfiguration = "Debug"
|
buildConfiguration = "Debug"
|
||||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||||
codeCoverageEnabled = "YES"
|
|
||||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||||
<Testables>
|
<Testables>
|
||||||
<TestableReference
|
<TestableReference
|
||||||
skipped = "NO">
|
skipped = "NO">
|
||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "C9BB478D1E71821A00F3F98C"
|
BlueprintIdentifier = "C97E5FCC24123F2E005C2EBC"
|
||||||
BuildableName = "OpenVPNAdapterTests.xctest"
|
BuildableName = "OpenVPNAdapterTests.xctest"
|
||||||
BlueprintName = "OpenVPNAdapter iOS Tests"
|
BlueprintName = "OpenVPNAdapterTests"
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
|
<SkippedTests>
|
||||||
|
<Test
|
||||||
|
Identifier = "OpenVPNReachabilityTests">
|
||||||
|
</Test>
|
||||||
|
</SkippedTests>
|
||||||
</TestableReference>
|
</TestableReference>
|
||||||
</Testables>
|
</Testables>
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "C9BB475B1E71663A00F3F98C"
|
|
||||||
BuildableName = "OpenVPNAdapter.framework"
|
|
||||||
BlueprintName = "OpenVPNAdapter iOS"
|
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</TestAction>
|
</TestAction>
|
||||||
<LaunchAction
|
<LaunchAction
|
||||||
buildConfiguration = "Debug"
|
buildConfiguration = "Debug"
|
||||||
@@ -62,17 +97,6 @@
|
|||||||
debugDocumentVersioning = "YES"
|
debugDocumentVersioning = "YES"
|
||||||
debugServiceExtension = "internal"
|
debugServiceExtension = "internal"
|
||||||
allowLocationSimulation = "YES">
|
allowLocationSimulation = "YES">
|
||||||
<MacroExpansion>
|
|
||||||
<BuildableReference
|
|
||||||
BuildableIdentifier = "primary"
|
|
||||||
BlueprintIdentifier = "C9BB475B1E71663A00F3F98C"
|
|
||||||
BuildableName = "OpenVPNAdapter.framework"
|
|
||||||
BlueprintName = "OpenVPNAdapter iOS"
|
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
|
||||||
</BuildableReference>
|
|
||||||
</MacroExpansion>
|
|
||||||
<AdditionalOptions>
|
|
||||||
</AdditionalOptions>
|
|
||||||
</LaunchAction>
|
</LaunchAction>
|
||||||
<ProfileAction
|
<ProfileAction
|
||||||
buildConfiguration = "Release"
|
buildConfiguration = "Release"
|
||||||
@@ -83,9 +107,9 @@
|
|||||||
<MacroExpansion>
|
<MacroExpansion>
|
||||||
<BuildableReference
|
<BuildableReference
|
||||||
BuildableIdentifier = "primary"
|
BuildableIdentifier = "primary"
|
||||||
BlueprintIdentifier = "C9BB475B1E71663A00F3F98C"
|
BlueprintIdentifier = "OpenVPNAdapter::OpenVPNClient"
|
||||||
BuildableName = "OpenVPNAdapter.framework"
|
BuildableName = "OpenVPNClient.framework"
|
||||||
BlueprintName = "OpenVPNAdapter iOS"
|
BlueprintName = "OpenVPNClient"
|
||||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||||
</BuildableReference>
|
</BuildableReference>
|
||||||
</MacroExpansion>
|
</MacroExpansion>
|
||||||
@@ -0,0 +1,67 @@
|
|||||||
|
// swift-tools-version:5.1
|
||||||
|
|
||||||
|
import PackageDescription
|
||||||
|
|
||||||
|
let package = Package(
|
||||||
|
name: "OpenVPNAdapter",
|
||||||
|
platforms: [
|
||||||
|
.iOS("9.0"),
|
||||||
|
.macOS("10.11"),
|
||||||
|
],
|
||||||
|
products: [
|
||||||
|
.library(name: "OpenVPNAdapter", type: .static, targets: ["OpenVPNAdapter"]),
|
||||||
|
],
|
||||||
|
targets: [
|
||||||
|
.target(
|
||||||
|
name: "OpenVPNAdapter",
|
||||||
|
dependencies: [
|
||||||
|
.target(name: "mbedTLS"),
|
||||||
|
.target(name: "OpenVPNClient")
|
||||||
|
],
|
||||||
|
sources: ["library"],
|
||||||
|
cxxSettings: [
|
||||||
|
.headerSearchPath("../ASIO/asio/include"),
|
||||||
|
.headerSearchPath("../OpenVPN3"),
|
||||||
|
.define("USE_ASIO")
|
||||||
|
]
|
||||||
|
),
|
||||||
|
.target(
|
||||||
|
name: "LZ4",
|
||||||
|
sources: ["lib"],
|
||||||
|
cSettings: [
|
||||||
|
.define("XXH_NAMESPACE", to: "LZ4_")
|
||||||
|
]
|
||||||
|
),
|
||||||
|
.target(
|
||||||
|
name: "mbedTLS",
|
||||||
|
sources: ["library"],
|
||||||
|
cSettings: [
|
||||||
|
.define("MBEDTLS_MD4_C"),
|
||||||
|
.define("MBEDTLS_RELAXED_X509_DATE"),
|
||||||
|
.define("_FILE_OFFSET_BITS", to: "64"),
|
||||||
|
]
|
||||||
|
),
|
||||||
|
.target(
|
||||||
|
name: "OpenVPNClient",
|
||||||
|
dependencies: [
|
||||||
|
.target(name: "LZ4"),
|
||||||
|
.target(name: "mbedTLS")
|
||||||
|
],
|
||||||
|
sources: ["library"],
|
||||||
|
cxxSettings: [
|
||||||
|
.headerSearchPath("../ASIO/asio/include"),
|
||||||
|
.headerSearchPath("../OpenVPN3"),
|
||||||
|
.define("USE_ASIO"),
|
||||||
|
.define("USE_ASIO_THREADLOCAL"),
|
||||||
|
.define("ASIO_STANDALONE"),
|
||||||
|
.define("ASIO_NO_DEPRECATED"),
|
||||||
|
.define("ASIO_HAS_STD_STRING_VIEW"),
|
||||||
|
.define("USE_MBEDTLS"),
|
||||||
|
.define("HAVE_LZ4"),
|
||||||
|
.define("OPENVPN_FORCE_TUN_NULL"),
|
||||||
|
.define("USE_TUN_BUILDER")
|
||||||
|
]
|
||||||
|
)
|
||||||
|
],
|
||||||
|
cxxLanguageStandard: .gnucxx14
|
||||||
|
)
|
||||||
@@ -3,8 +3,10 @@
|
|||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||

|

|
||||||
|

|
||||||
|

|
||||||

|

|
||||||
|
|
||||||
## Overview
|
## Overview
|
||||||
@@ -16,7 +18,7 @@ The framework is designed to use in conjunction with [`NetworkExtension`](https:
|
|||||||
|
|
||||||
### Requirements
|
### Requirements
|
||||||
- iOS 9.0+ or macOS 10.11+
|
- iOS 9.0+ or macOS 10.11+
|
||||||
- Xcode 9.0+
|
- Xcode 11.0+
|
||||||
|
|
||||||
### Carthage
|
### Carthage
|
||||||
To install OpenVPNAdapter with Carthage, add the following line to your `Cartfile`.
|
To install OpenVPNAdapter with Carthage, add the following line to your `Cartfile`.
|
||||||
@@ -39,6 +41,9 @@ end
|
|||||||
|
|
||||||
And run `$ pod install`.
|
And run `$ pod install`.
|
||||||
|
|
||||||
|
### Swift Package Manager
|
||||||
|
Add `OpenVPNAdapter` package to your project using File > Swift Packages > Add Package Dependency menu. Xcode 11 will automatically retrieve all necessary dependencies. In addition to that you need to add `SystemConfiguration` framework to the Frameworks and Libraries. If you work on iOS project add `UIKit` as well.
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
At first, you need to add a Packet Tunnel Provider extension to the project and configure provision profiles for both the container app and the extension. There are official documentation and many tutorials describing how to do it so we won't dwell on this in detail.
|
At first, you need to add a Packet Tunnel Provider extension to the project and configure provision profiles for both the container app and the extension. There are official documentation and many tutorials describing how to do it so we won't dwell on this in detail.
|
||||||
|
|
||||||
|
|||||||
Executable
+19
@@ -0,0 +1,19 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -e
|
||||||
|
|
||||||
|
. functions.sh
|
||||||
|
|
||||||
|
ASIO_SRC_DIR="../Sources/ASIO"
|
||||||
|
ASIO_PATCH_DIR="../Sources/OpenVPN3/deps/asio/patches"
|
||||||
|
|
||||||
|
MBEDTLS_SRC_DIR="../Sources/mbedTLS"
|
||||||
|
MBEDTLS_PATCH_DIR="../Sources/OpenVPN3/deps/mbedtls/patches"
|
||||||
|
|
||||||
|
if [ "$1" = "--reverse" ]; then
|
||||||
|
reverse_patches ${ASIO_SRC_DIR} ${ASIO_PATCH_DIR}
|
||||||
|
reverse_patches ${MBEDTLS_SRC_DIR} ${MBEDTLS_PATCH_DIR}
|
||||||
|
else
|
||||||
|
apply_patches ${ASIO_SRC_DIR} ${ASIO_PATCH_DIR}
|
||||||
|
apply_patches ${MBEDTLS_SRC_DIR} ${MBEDTLS_PATCH_DIR}
|
||||||
|
fi
|
||||||
@@ -1,64 +0,0 @@
|
|||||||
# Your OpenVPN username
|
|
||||||
if ENV["OPENVPN_USERNAME"].nil?
|
|
||||||
ENV["OPENVPN_USERNAME"] = "Username"
|
|
||||||
end
|
|
||||||
|
|
||||||
# Your OpenVPN password
|
|
||||||
if ENV["OPENVPN_PASSWORD"].nil?
|
|
||||||
ENV["OPENVPN_PASSWORD"] = "Password"
|
|
||||||
end
|
|
||||||
|
|
||||||
# Your OpenVPN configuration
|
|
||||||
if ENV["OPENVPN_CONFIGURATION"].nil?
|
|
||||||
ENV["OPENVPN_CONFIGURATION"] = <<~END
|
|
||||||
client
|
|
||||||
dev tun
|
|
||||||
proto udp
|
|
||||||
|
|
||||||
remote X.X.X.X 1194
|
|
||||||
|
|
||||||
remote-random
|
|
||||||
resolv-retry infinite
|
|
||||||
nobind
|
|
||||||
cipher AES-256-CBC
|
|
||||||
auth SHA512
|
|
||||||
comp-lzo no
|
|
||||||
verb 3
|
|
||||||
|
|
||||||
tun-mtu 1500
|
|
||||||
tun-mtu-extra 32
|
|
||||||
mssfix 1450
|
|
||||||
persist-key
|
|
||||||
persist-tun
|
|
||||||
|
|
||||||
reneg-sec 0
|
|
||||||
|
|
||||||
remote-cert-tls server
|
|
||||||
auth-user-pass
|
|
||||||
pull
|
|
||||||
fast-io
|
|
||||||
|
|
||||||
<ca>
|
|
||||||
-----BEGIN CERTIFICATE-----
|
|
||||||
...
|
|
||||||
-----END CERTIFICATE-----
|
|
||||||
</ca>
|
|
||||||
|
|
||||||
key-direction 1
|
|
||||||
|
|
||||||
<tls-auth>
|
|
||||||
# 2048 bit OpenVPN static key
|
|
||||||
-----BEGIN OpenVPN Static key V1-----
|
|
||||||
...
|
|
||||||
-----END OpenVPN Static key V1-----
|
|
||||||
</tls-auth>
|
|
||||||
END
|
|
||||||
end
|
|
||||||
|
|
||||||
if ENV["OPENVPN_REMOTE_HOST"].nil?
|
|
||||||
ENV["OPENVPN_REMOTE_HOST"] = "Remote Host Address"
|
|
||||||
end
|
|
||||||
|
|
||||||
if ENV["OPENVPN_REMOTE_PORT"].nil?
|
|
||||||
ENV["OPENVPN_REMOTE_PORT"] = "Remote Host Port"
|
|
||||||
end
|
|
||||||
@@ -1,35 +0,0 @@
|
|||||||
environment_file = File.join(ENV["SRCROOT"], "Scripts", "environment.rb")
|
|
||||||
if File.exist?(environment_file)
|
|
||||||
require "#{environment_file}"
|
|
||||||
end
|
|
||||||
|
|
||||||
require "erb"
|
|
||||||
|
|
||||||
if ENV["OPENVPN_USERNAME"].nil? || ENV["OPENVPN_PASSWORD"].nil? || ENV["OPENVPN_CONFIGURATION"].nil?
|
|
||||||
puts "warning: VPN profile data is missing, you need to fill VPNProfile.swift manually."
|
|
||||||
exit(true)
|
|
||||||
end
|
|
||||||
|
|
||||||
template_file = File.join(ENV["SRCROOT"], "Scripts", "vpn_profile_template.erb")
|
|
||||||
unless File.exist?(template_file)
|
|
||||||
puts "error: Template file does not exist."
|
|
||||||
exit(false)
|
|
||||||
end
|
|
||||||
|
|
||||||
output_file = File.join(ENV["SRCROOT"], "Tests", "VPNProfile.swift")
|
|
||||||
unless File.exist?(output_file)
|
|
||||||
puts "error: Output file does not exist."
|
|
||||||
exit(false)
|
|
||||||
end
|
|
||||||
|
|
||||||
OPENVPN_USERNAME = ENV["OPENVPN_USERNAME"]
|
|
||||||
OPENVPN_PASSWORD = ENV["OPENVPN_PASSWORD"]
|
|
||||||
OPENVPN_CONFIGURATION = ENV["OPENVPN_CONFIGURATION"]
|
|
||||||
OPENVPN_REMOTE_HOST = ENV["OPENVPN_REMOTE_HOST"]
|
|
||||||
OPENVPN_REMOTE_PORT = ENV["OPENVPN_REMOTE_PORT"]
|
|
||||||
|
|
||||||
template_content = File.read(template_file)
|
|
||||||
erb_template = ERB.new(template_content, nil, ">")
|
|
||||||
|
|
||||||
result = erb_template.result
|
|
||||||
File.write(output_file, result)
|
|
||||||
@@ -0,0 +1,37 @@
|
|||||||
|
function apply_patches()
|
||||||
|
{
|
||||||
|
DEP_SRC_DIR=$1
|
||||||
|
DEP_PATCH_DIR=$2
|
||||||
|
|
||||||
|
CURRENT_DIR=$(pwd)
|
||||||
|
|
||||||
|
pushd ${CURRENT_DIR}
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
|
||||||
|
for file in ${CURRENT_DIR}/${DEP_PATCH_DIR}/*.patch; do
|
||||||
|
echo Applying patch: $file
|
||||||
|
git apply --directory ${CURRENT_DIR}/${DEP_SRC_DIR} --unsafe-path $file
|
||||||
|
done
|
||||||
|
|
||||||
|
popd
|
||||||
|
}
|
||||||
|
|
||||||
|
function reverse_patches()
|
||||||
|
{
|
||||||
|
DEP_SRC_DIR=$1
|
||||||
|
DEP_PATCH_DIR=$2
|
||||||
|
|
||||||
|
CURRENT_DIR=$(pwd)
|
||||||
|
|
||||||
|
pushd ${CURRENT_DIR}
|
||||||
|
|
||||||
|
cd /tmp
|
||||||
|
|
||||||
|
for file in ${CURRENT_DIR}/${DEP_PATCH_DIR}/*.patch; do
|
||||||
|
echo Reverse patch: $file
|
||||||
|
git apply --reverse --directory ${CURRENT_DIR}/${DEP_SRC_DIR} --unsafe-path $file
|
||||||
|
done
|
||||||
|
|
||||||
|
popd
|
||||||
|
}
|
||||||
@@ -1,25 +0,0 @@
|
|||||||
//
|
|
||||||
// VPNProfile.swift
|
|
||||||
// OpenVPNAdapter
|
|
||||||
//
|
|
||||||
// Created by Sergey Abramchuk on 27/09/2018.
|
|
||||||
//
|
|
||||||
// Do not commit changes of this file to the repo!
|
|
||||||
|
|
||||||
import Foundation
|
|
||||||
|
|
||||||
struct VPNProfile {
|
|
||||||
|
|
||||||
static let username: String = "<%= OPENVPN_USERNAME %>"
|
|
||||||
static let password: String = "<%= OPENVPN_PASSWORD %>"
|
|
||||||
|
|
||||||
static let configuration: String = """
|
|
||||||
<% OPENVPN_CONFIGURATION.each_line do |line| %>
|
|
||||||
<%= line %>
|
|
||||||
<% end %>
|
|
||||||
"""
|
|
||||||
|
|
||||||
static let remoteHost: String = "<%= OPENVPN_REMOTE_HOST %>"
|
|
||||||
static let remotePort: Int = <%= OPENVPN_REMOTE_PORT %>
|
|
||||||
|
|
||||||
}
|
|
||||||
+2
@@ -950,6 +950,8 @@ public:
|
|||||||
{
|
{
|
||||||
const protocol_type protocol = peer_endpoint.protocol();
|
const protocol_type protocol = peer_endpoint.protocol();
|
||||||
impl_.get_service().open(impl_.get_implementation(), protocol, open_ec);
|
impl_.get_service().open(impl_.get_implementation(), protocol, open_ec);
|
||||||
|
if (!open_ec)
|
||||||
|
async_connect_post_open(protocol, open_ec);
|
||||||
}
|
}
|
||||||
|
|
||||||
return async_initiate<ConnectHandler, void (asio::error_code)>(
|
return async_initiate<ConnectHandler, void (asio::error_code)>(
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user