mirror of
https://github.com/deneraraujo/OpenVPNAdapter.git
synced 2026-01-31 00:00:06 +08:00
Merge branch 'feature/reset-tunnel' into develop
This commit is contained in:
@@ -34,11 +34,11 @@ typedef NS_ENUM(NSInteger, OpenVPNAdapterEvent);
|
||||
the TUN interface, or nil if an error occurred.
|
||||
|
||||
@param openVPNAdapter The OpenVPNAdapter instance requesting this information.
|
||||
@param networkSettings The NEPacketTunnelNetworkSettings to be used for the tunnel.
|
||||
@param completionHandler The completion handler to be called with a NEPacketTunnelFlow object, or nil if an error occurred.
|
||||
@param networkSettings The NEPacketTunnelNetworkSettings to be used for the tunnel. Provides nil to clear out the network settings.
|
||||
@param completionHandler The completion handler to be called with a NEPacketTunnelFlow object, or nil if an error occurred or the network settings were cleared out.
|
||||
*/
|
||||
- (void)openVPNAdapter:(OpenVPNAdapter *)openVPNAdapter
|
||||
configureTunnelWithNetworkSettings:(NEPacketTunnelNetworkSettings *)networkSettings
|
||||
configureTunnelWithNetworkSettings:(nullable NEPacketTunnelNetworkSettings *)networkSettings
|
||||
completionHandler:(void (^)(id<OpenVPNAdapterPacketFlow> _Nullable packetFlow))completionHandler
|
||||
NS_SWIFT_NAME(openVPNAdapter(_:configureTunnelWithNetworkSettings:completionHandler:));
|
||||
|
||||
|
||||
@@ -398,6 +398,16 @@
|
||||
_sessionName = nil;
|
||||
_packetFlowBridge = nil;
|
||||
_networkSettingsBuilder = nil;
|
||||
|
||||
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
|
||||
|
||||
void (^completionHandler)(id<OpenVPNAdapterPacketFlow> _Nullable) = ^(id<OpenVPNAdapterPacketFlow> flow) {
|
||||
dispatch_semaphore_signal(semaphore);
|
||||
};
|
||||
|
||||
[self.delegate openVPNAdapter:self configureTunnelWithNetworkSettings:nil completionHandler:completionHandler];
|
||||
|
||||
dispatch_semaphore_wait(semaphore, dispatch_time(DISPATCH_TIME_NOW, 30 * NSEC_PER_SEC));
|
||||
}
|
||||
|
||||
#pragma mark -
|
||||
|
||||
@@ -64,11 +64,6 @@ typedef NS_ENUM(NSInteger, OpenVPNTLSCertProfile);
|
||||
*/
|
||||
@property (nonatomic) NSInteger connectionTimeout;
|
||||
|
||||
/**
|
||||
Keep tun interface active during pauses or reconnections
|
||||
*/
|
||||
@property (nonatomic) BOOL tunPersist;
|
||||
|
||||
/**
|
||||
If YES and a redirect-gateway profile doesn't also define
|
||||
DNS servers, use the standard Google DNS servers.
|
||||
|
||||
@@ -308,14 +308,6 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default";
|
||||
_config.connTimeout = connectionTimeout;
|
||||
}
|
||||
|
||||
- (BOOL)tunPersist {
|
||||
return _config.tunPersist;
|
||||
}
|
||||
|
||||
- (void)setTunPersist:(BOOL)tunPersist {
|
||||
_config.tunPersist = tunPersist;
|
||||
}
|
||||
|
||||
- (BOOL)googleDNSFallback {
|
||||
return _config.googleDnsFallback;
|
||||
}
|
||||
@@ -485,7 +477,6 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default";
|
||||
configuration.proto = self.proto;
|
||||
configuration.ipv6 = self.ipv6;
|
||||
configuration.connectionTimeout = self.connectionTimeout;
|
||||
configuration.tunPersist = self.tunPersist;
|
||||
configuration.googleDNSFallback = self.googleDNSFallback;
|
||||
configuration.synchronousDNSLookup = self.synchronousDNSLookup;
|
||||
configuration.autologinSessions = self.autologinSessions;
|
||||
@@ -512,7 +503,6 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default";
|
||||
[aCoder encodeInteger:self.proto forKey:NSStringFromSelector(@selector(proto))];
|
||||
[aCoder encodeInteger:self.ipv6 forKey:NSStringFromSelector(@selector(ipv6))];
|
||||
[aCoder encodeInteger:self.connectionTimeout forKey:NSStringFromSelector(@selector(connectionTimeout))];
|
||||
[aCoder encodeBool:self.tunPersist forKey:NSStringFromSelector(@selector(tunPersist))];
|
||||
[aCoder encodeBool:self.googleDNSFallback forKey:NSStringFromSelector(@selector(googleDNSFallback))];
|
||||
[aCoder encodeBool:self.synchronousDNSLookup forKey:NSStringFromSelector(@selector(synchronousDNSLookup))];
|
||||
[aCoder encodeBool:self.autologinSessions forKey:NSStringFromSelector(@selector(autologinSessions))];
|
||||
@@ -539,7 +529,6 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default";
|
||||
self.proto = (OpenVPNTransportProtocol)[aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(proto))];
|
||||
self.ipv6 = (OpenVPNIPv6Preference)[aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(ipv6))];
|
||||
self.connectionTimeout = [aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(connectionTimeout))];
|
||||
self.tunPersist = [aDecoder decodeBoolForKey:NSStringFromSelector(@selector(tunPersist))];
|
||||
self.googleDNSFallback = [aDecoder decodeBoolForKey:NSStringFromSelector(@selector(googleDNSFallback))];
|
||||
self.synchronousDNSLookup = [aDecoder decodeBoolForKey:NSStringFromSelector(@selector(synchronousDNSLookup))];
|
||||
self.autologinSessions = [aDecoder decodeBoolForKey:NSStringFromSelector(@selector(autologinSessions))];
|
||||
|
||||
@@ -111,7 +111,7 @@ class OpenVPNAdapterTests: XCTestCase {
|
||||
|
||||
extension OpenVPNAdapterTests: OpenVPNAdapterDelegate {
|
||||
|
||||
func openVPNAdapter(_ openVPNAdapter: OpenVPNAdapter, configureTunnelWithNetworkSettings networkSettings: NEPacketTunnelNetworkSettings, completionHandler: @escaping (OpenVPNAdapterPacketFlow?) -> Void) {
|
||||
func openVPNAdapter(_ openVPNAdapter: OpenVPNAdapter, configureTunnelWithNetworkSettings networkSettings: NEPacketTunnelNetworkSettings?, completionHandler: @escaping (OpenVPNAdapterPacketFlow?) -> Void) {
|
||||
completionHandler(customFlow)
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user