mirror of
https://github.com/deneraraujo/OpenVPNAdapter.git
synced 2026-01-31 00:00:06 +08:00
Compare commits
82 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b3196ad6aa | ||
|
|
e6d64ab981 | ||
|
|
eef09bdb28 | ||
|
|
f077c32fa6 | ||
|
|
947ac7a34b | ||
|
|
46543218e6 | ||
|
|
14fed5527d | ||
|
|
16069c0127 | ||
|
|
8a4755d51f | ||
|
|
afdb988ae9 | ||
|
|
f2ef611283 | ||
|
|
7294157182 | ||
|
|
d75dc24a8c | ||
|
|
63f8838172 | ||
|
|
e793320734 | ||
|
|
aff379ba21 | ||
|
|
02d1895396 | ||
|
|
05217a5d55 | ||
|
|
3372aca957 | ||
|
|
618b086aa6 | ||
|
|
b4b0ef1aca | ||
|
|
0d2c4e99b5 | ||
|
|
45213a2d8e | ||
|
|
fb9560b7a0 | ||
|
|
51b3e19450 | ||
|
|
cc2663779f | ||
|
|
5129f6ecb2 | ||
|
|
4d794cc279 | ||
|
|
adcb23702e | ||
|
|
6b782a9309 | ||
|
|
1e77a600a4 | ||
|
|
e66d4b04a2 | ||
|
|
02b1077795 | ||
|
|
82d2694a57 | ||
|
|
43e011aa12 | ||
|
|
8a79798c2c | ||
|
|
ea77618c28 | ||
|
|
dd08e51a19 | ||
|
|
e3266c3792 | ||
|
|
23fcbf55a9 | ||
|
|
d7ca445f35 | ||
|
|
7d53a7f396 | ||
|
|
990326e52f | ||
|
|
2bd0879a3b | ||
|
|
9dd887db5c | ||
|
|
32f1555929 | ||
|
|
86cc97e55f | ||
|
|
133b3756e6 | ||
|
|
c0cd028912 | ||
|
|
175080ea69 | ||
|
|
1dd2f46452 | ||
|
|
c274ea6ecc | ||
|
|
1a3a83f332 | ||
|
|
9b6210faab | ||
|
|
1639547f74 | ||
|
|
4c1704d1a2 | ||
|
|
d387eb4f5f | ||
|
|
f4f98ddf88 | ||
|
|
b04a285210 | ||
|
|
2d1fdfb019 | ||
|
|
ad77627ca9 | ||
|
|
d8a55bc358 | ||
|
|
76e5488aa1 | ||
|
|
c3ed67b67d | ||
|
|
f9d506ffca | ||
|
|
ef93e5adc9 | ||
|
|
3db23628cb | ||
|
|
7331ae5fad | ||
|
|
aa396dad2d | ||
|
|
29bd59f78f | ||
|
|
f44694ce5f | ||
|
|
238abab032 | ||
|
|
688ce11081 | ||
|
|
3980fb9be5 | ||
|
|
8e87aecebf | ||
|
|
828011bbd3 | ||
|
|
a6e3758c68 | ||
|
|
fb23b2a92e | ||
|
|
7faa96b809 | ||
|
|
8d167952b1 | ||
|
|
d1f794ae57 | ||
|
|
96cf2d1804 |
35
.gitignore
vendored
35
.gitignore
vendored
@@ -48,3 +48,38 @@ playground.xcworkspace
|
||||
# Carthage/Checkouts
|
||||
|
||||
Carthage/Build
|
||||
|
||||
# Swift PM
|
||||
|
||||
.build/
|
||||
.swiftpm
|
||||
|
||||
## macOS generated
|
||||
|
||||
# General
|
||||
.DS_Store
|
||||
.AppleDouble
|
||||
.LSOverride
|
||||
|
||||
# Icon must end with two \r
|
||||
Icon
|
||||
|
||||
|
||||
# Thumbnails
|
||||
._*
|
||||
|
||||
# Files that might appear in the root of a volume
|
||||
.DocumentRevisions-V100
|
||||
.fseventsd
|
||||
.Spotlight-V100
|
||||
.TemporaryItems
|
||||
.Trashes
|
||||
.VolumeIcon.icns
|
||||
.com.apple.timemachine.donotpresent
|
||||
|
||||
# Directories potentially created on remote AFP share
|
||||
.AppleDB
|
||||
.AppleDesktop
|
||||
Network Trash Folder
|
||||
Temporary Items
|
||||
.apdisk
|
||||
|
||||
6
CHANGELOG.md
Normal file
6
CHANGELOG.md
Normal file
@@ -0,0 +1,6 @@
|
||||
# Changelog
|
||||
|
||||
## 0.5.0
|
||||
- **Added**: Swift Package Manager support;
|
||||
- **Updated**: openvpn3 library – 3.5.4 version;
|
||||
- **Fixed**: Network issue when adapter used in macOS projects.
|
||||
@@ -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
|
||||
1
Configuration/LZ4.xcconfig
Normal file
1
Configuration/LZ4.xcconfig
Normal file
@@ -0,0 +1 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) XXH_NAMESPACE=LZ4_
|
||||
3
Configuration/OpenVPNAdapter.xcconfig
Normal file
3
Configuration/OpenVPNAdapter.xcconfig
Normal file
@@ -0,0 +1,3 @@
|
||||
MODULEMAP_FILE = Sources/OpenVPNAdapter/module.modulemap
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) USE_ASIO
|
||||
GCC_WARN_64_TO_32_BIT_CONVERSION = NO
|
||||
2
Configuration/OpenVPNClient.xcconfig
Normal file
2
Configuration/OpenVPNClient.xcconfig
Normal file
@@ -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
|
||||
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
|
||||
//
|
||||
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=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
|
||||
//
|
||||
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
|
||||
1
Configuration/mbedTLS.xcconfig
Normal file
1
Configuration/mbedTLS.xcconfig
Normal file
@@ -0,0 +1 @@
|
||||
GCC_PREPROCESSOR_DEFINITIONS = $(inherited) MBEDTLS_MD4_C MBEDTLS_RELAXED_X509_DATE _FILE_OFFSET_BITS=64
|
||||
@@ -3,7 +3,7 @@ Pod::Spec.new do |s|
|
||||
# ――― Spec Metadata ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||
|
||||
s.name = "OpenVPNAdapter"
|
||||
s.version = "0.3.0"
|
||||
s.version = "0.5.0"
|
||||
s.summary = "Objective-C wrapper for OpenVPN library. Compatible with iOS and macOS."
|
||||
s.description = <<-DESC
|
||||
OpenVPNAdapter is an Objective-C framework that allows to easily configure and establish VPN connection using OpenVPN protocol.
|
||||
@@ -35,116 +35,70 @@ Pod::Spec.new do |s|
|
||||
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 ―――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||
|
||||
s.ios.frameworks = "Foundation", "NetworkExtension", "SystemConfiguration", "UIKit"
|
||||
s.osx.frameworks = "Foundation", "NetworkExtension", "SystemConfiguration"
|
||||
|
||||
s.libraries = "lz4", "mbedcrypto", "mbedtls", "mbedx509"
|
||||
|
||||
|
||||
# ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||
|
||||
s.requires_arc = true
|
||||
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 = {
|
||||
"APPLICATION_EXTENSION_API_ONLY" => "YES",
|
||||
"CLANG_CXX_LANGUAGE_STANDARD" => "gnu++14",
|
||||
"CLANG_CXX_LIBRARY" => "libc++",
|
||||
"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 ――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
|
||||
|
||||
s.subspec "lz4" do |lz4|
|
||||
lz4_path = "#{vendors_path}/lz4"
|
||||
s.subspec "OpenVPNAdapter" do |adapter|
|
||||
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"
|
||||
|
||||
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/**"
|
||||
}
|
||||
adapter.compiler_flags = "-DUSE_ASIO"
|
||||
end
|
||||
|
||||
s.subspec "mbedtls" do |mbedtls|
|
||||
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"
|
||||
|
||||
s.subspec "ASIO" do |asio|
|
||||
asio.preserve_paths = "#{asio_path}/asio/include/**/*.{hpp,ipp}"
|
||||
|
||||
asio.xcconfig = {
|
||||
"HEADER_SEARCH_PATHS" => "${PODS_TARGET_SRCROOT}/#{asio_path}/asio/include/**"
|
||||
}
|
||||
end
|
||||
|
||||
s.subspec "openvpn" do |openvpn|
|
||||
openvpn_path = "#{vendors_path}/openvpn"
|
||||
s.subspec "LZ4" do |lz4|
|
||||
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}"
|
||||
openvpn.private_header_files = "#{openvpn_path}/client/*.hpp"
|
||||
lz4.compiler_flags = "-DXXH_NAMESPACE=LZ4_"
|
||||
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 = {
|
||||
"HEADER_SEARCH_PATHS" => "${PODS_TARGET_SRCROOT}/#{openvpn_path}/**",
|
||||
"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"
|
||||
}
|
||||
s.subspec "OpenVPN3" do |openvpn|
|
||||
openvpn.preserve_paths = "#{openvpn_path}/openvpn/**/*.hpp", "#{openvpn_path}/client/*.{hpp,cpp}"
|
||||
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
|
||||
|
||||
@@ -15,7 +15,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>FMWK</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>0.3.0</string>
|
||||
<string>$(MARKETING_VERSION)</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>$(CURRENT_PROJECT_VERSION)</string>
|
||||
<key>NSPrincipalClass</key>
|
||||
26
OpenVPNAdapter.xcodeproj/OpenVPNAdapter_Info.plist
Normal file
26
OpenVPNAdapter.xcodeproj/OpenVPNAdapter_Info.plist
Normal file
@@ -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>
|
||||
26
OpenVPNAdapter.xcodeproj/OpenVPNClient_Info.plist
Normal file
26
OpenVPNAdapter.xcodeproj/OpenVPNClient_Info.plist
Normal file
@@ -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>
|
||||
26
OpenVPNAdapter.xcodeproj/mbedTLS_Info.plist
Normal file
26
OpenVPNAdapter.xcodeproj/mbedTLS_Info.plist
Normal file
@@ -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>
|
||||
File diff suppressed because it is too large
Load Diff
@@ -2,6 +2,6 @@
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:/Users/ss.abramchuk/Sources.localized/open-source.localized/openvpn-adapter/OpenVPNAdapter.xcodeproj">
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
||||
</Workspace>
|
||||
@@ -1,5 +1,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">
|
||||
<plist version="1.0">
|
||||
<dict/>
|
||||
</plist>
|
||||
<dict>
|
||||
<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>
|
||||
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1020"
|
||||
LastUpgradeVersion = "9999"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
@@ -14,9 +14,51 @@
|
||||
buildForAnalyzing = "YES">
|
||||
<BuildableReference
|
||||
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"
|
||||
BlueprintName = "OpenVPNAdapter iOS"
|
||||
BlueprintName = "OpenVPNAdapter"
|
||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||
</BuildableReference>
|
||||
</BuildActionEntry>
|
||||
@@ -26,31 +68,24 @@
|
||||
buildConfiguration = "Debug"
|
||||
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
|
||||
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
|
||||
codeCoverageEnabled = "YES"
|
||||
shouldUseLaunchSchemeArgsEnv = "YES">
|
||||
<Testables>
|
||||
<TestableReference
|
||||
skipped = "NO">
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "C9BB478D1E71821A00F3F98C"
|
||||
BlueprintIdentifier = "C97E5FCC24123F2E005C2EBC"
|
||||
BuildableName = "OpenVPNAdapterTests.xctest"
|
||||
BlueprintName = "OpenVPNAdapter iOS Tests"
|
||||
BlueprintName = "OpenVPNAdapterTests"
|
||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||
</BuildableReference>
|
||||
<SkippedTests>
|
||||
<Test
|
||||
Identifier = "OpenVPNReachabilityTests">
|
||||
</Test>
|
||||
</SkippedTests>
|
||||
</TestableReference>
|
||||
</Testables>
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "C9BB475B1E71663A00F3F98C"
|
||||
BuildableName = "OpenVPNAdapter.framework"
|
||||
BlueprintName = "OpenVPNAdapter iOS"
|
||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</TestAction>
|
||||
<LaunchAction
|
||||
buildConfiguration = "Debug"
|
||||
@@ -62,17 +97,6 @@
|
||||
debugDocumentVersioning = "YES"
|
||||
debugServiceExtension = "internal"
|
||||
allowLocationSimulation = "YES">
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "C9BB475B1E71663A00F3F98C"
|
||||
BuildableName = "OpenVPNAdapter.framework"
|
||||
BlueprintName = "OpenVPNAdapter iOS"
|
||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
<AdditionalOptions>
|
||||
</AdditionalOptions>
|
||||
</LaunchAction>
|
||||
<ProfileAction
|
||||
buildConfiguration = "Release"
|
||||
@@ -83,9 +107,9 @@
|
||||
<MacroExpansion>
|
||||
<BuildableReference
|
||||
BuildableIdentifier = "primary"
|
||||
BlueprintIdentifier = "C9BB475B1E71663A00F3F98C"
|
||||
BuildableName = "OpenVPNAdapter.framework"
|
||||
BlueprintName = "OpenVPNAdapter iOS"
|
||||
BlueprintIdentifier = "OpenVPNAdapter::OpenVPNClient"
|
||||
BuildableName = "OpenVPNClient.framework"
|
||||
BlueprintName = "OpenVPNClient"
|
||||
ReferencedContainer = "container:OpenVPNAdapter.xcodeproj">
|
||||
</BuildableReference>
|
||||
</MacroExpansion>
|
||||
67
Package.swift
Normal file
67
Package.swift
Normal file
@@ -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
|
||||
)
|
||||
14
README.md
14
README.md
@@ -3,8 +3,10 @@
|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||

|
||||
|
||||
## Overview
|
||||
@@ -16,7 +18,7 @@ The framework is designed to use in conjunction with [`NetworkExtension`](https:
|
||||
|
||||
### Requirements
|
||||
- iOS 9.0+ or macOS 10.11+
|
||||
- Xcode 9.0+
|
||||
- Xcode 11.0+
|
||||
|
||||
### Carthage
|
||||
To install OpenVPNAdapter with Carthage, add the following line to your `Cartfile`.
|
||||
@@ -33,12 +35,15 @@ To install OpenVPNAdapter with Cocoapods, add the following lines to your `Podfi
|
||||
```ruby
|
||||
target 'Your Target Name' do
|
||||
use_frameworks!
|
||||
pod 'OpenVPNAdapter', :git => 'https://github.com/ss-abramchuk/OpenVPNAdapter.git', :tag => '0.3.0'
|
||||
pod 'OpenVPNAdapter', :git => 'https://github.com/ss-abramchuk/OpenVPNAdapter.git', :tag => '0.5.0'
|
||||
end
|
||||
```
|
||||
|
||||
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
|
||||
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.
|
||||
|
||||
@@ -177,6 +182,9 @@ class PacketTunnelProvider: NEPacketTunnelProvider {
|
||||
// Additional parameters as key:value pairs may be provided here
|
||||
]
|
||||
|
||||
// Add this line if you want to keep TUN interface active during pauses or reconnections
|
||||
configuration.tunPersist = true
|
||||
|
||||
// Apply OpenVPN configuration
|
||||
let properties: OpenVPNProperties
|
||||
do {
|
||||
|
||||
19
Scripts/apply_patches.sh
Executable file
19
Scripts/apply_patches.sh
Executable file
@@ -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)
|
||||
37
Scripts/functions.sh
Normal file
37
Scripts/functions.sh
Normal file
@@ -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 %>
|
||||
|
||||
}
|
||||
@@ -1,4 +1,4 @@
|
||||
asio version 1.13.0
|
||||
Released Tuesday, 12 March 2019.
|
||||
asio version 1.14.0
|
||||
Released Sunday, 14 April 2019.
|
||||
|
||||
See doc/index.html for API documentation and a tutorial.
|
||||
@@ -1,4 +1,4 @@
|
||||
AC_INIT(asio, [1.13.0])
|
||||
AC_INIT(asio, [1.14.0])
|
||||
AC_CONFIG_SRCDIR(include/asio.hpp)
|
||||
AM_MAINTAINER_MODE
|
||||
AM_INIT_AUTOMAKE([tar-ustar])
|
||||
@@ -950,6 +950,8 @@ public:
|
||||
{
|
||||
const protocol_type protocol = peer_endpoint.protocol();
|
||||
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)>(
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user