From a5531f61fb09310cb89821e360c2fcf1a460f3f3 Mon Sep 17 00:00:00 2001 From: Sergey Abramchuk Date: Mon, 20 Mar 2017 21:31:21 +0300 Subject: [PATCH] Fix forgotten initialization of configuration --- OpenVPN Adapter/OpenVPNAdapter.mm | 9 +++++++++ OpenVPN Adapter/TUNConfiguration.m | 2 ++ 2 files changed, 11 insertions(+) diff --git a/OpenVPN Adapter/OpenVPNAdapter.mm b/OpenVPN Adapter/OpenVPNAdapter.mm index bcfc2a4..d847d83 100644 --- a/OpenVPN Adapter/OpenVPNAdapter.mm +++ b/OpenVPN Adapter/OpenVPNAdapter.mm @@ -118,9 +118,17 @@ static void socketCallback(CFSocketRef socket, CFSocketCallBackType type, CFData } if (isIPv6) { + if (!self.tunConfigurationIPv6.initialized) { + self.tunConfigurationIPv6.initialized = YES; + } + [self.tunConfigurationIPv6.localAddresses addObject:address]; [self.tunConfigurationIPv6.prefixLengths addObject:prefixLength]; } else { + if (!self.tunConfigurationIPv4.initialized) { + self.tunConfigurationIPv4.initialized = YES; + } + [self.tunConfigurationIPv4.localAddresses addObject:address]; [self.tunConfigurationIPv4.prefixLengths addObject:prefixLength]; } @@ -256,6 +264,7 @@ static void socketCallback(CFSocketRef socket, CFSocketCallBackType type, CFData // Set MTU networkSettings.MTU = self.mtu; + // Establish TUN interface dispatch_semaphore_t sema = dispatch_semaphore_create(0); [self.delegate configureTunnelWithSettings:networkSettings callback:^(id _Nullable flow) { diff --git a/OpenVPN Adapter/TUNConfiguration.m b/OpenVPN Adapter/TUNConfiguration.m index b8f4940..2beb564 100644 --- a/OpenVPN Adapter/TUNConfiguration.m +++ b/OpenVPN Adapter/TUNConfiguration.m @@ -14,6 +14,8 @@ { self = [super init]; if (self) { + _initialized = NO; + _localAddresses = [NSMutableArray new]; _prefixLengths = [NSMutableArray new];