From 37cfcbd0b2ed49832828c3c8e7f3db20319231b0 Mon Sep 17 00:00:00 2001 From: Sergey Abramchuk Date: Sat, 20 May 2017 11:21:38 +0300 Subject: [PATCH] Check for UNSPEC gateway within adapter --- OpenVPN Adapter/OpenVPNAdapter.mm | 6 ++++-- OpenVPN Adapter/OpenVPNClient.mm | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/OpenVPN Adapter/OpenVPNAdapter.mm b/OpenVPN Adapter/OpenVPNAdapter.mm index ad02ab6..7e9c9a2 100644 --- a/OpenVPN Adapter/OpenVPNAdapter.mm +++ b/OpenVPN Adapter/OpenVPNAdapter.mm @@ -145,12 +145,14 @@ static void socketCallback(CFSocketRef socket, CFSocketCallBackType type, CFData return NO; } + NSString *defaultGateway = [gateway length] == 0 || [gateway isEqualToString:@"UNSPEC"] ? nil : gateway; + if (isIPv6) { if (!self.tunnelSettingsIPv6.initialized) { self.tunnelSettingsIPv6.initialized = YES; } - self.defaultGatewayIPv6 = gateway; + self.defaultGatewayIPv6 = defaultGateway [self.tunnelSettingsIPv6.localAddresses addObject:address]; [self.tunnelSettingsIPv6.prefixLengths addObject:prefixLength]; @@ -159,7 +161,7 @@ static void socketCallback(CFSocketRef socket, CFSocketCallBackType type, CFData self.tunnelSettingsIPv4.initialized = YES; } - self.defaultGatewayIPv4 = gateway; + self.defaultGatewayIPv4 = defaultGateway; [self.tunnelSettingsIPv4.localAddresses addObject:address]; [self.tunnelSettingsIPv4.prefixLengths addObject:prefixLength]; diff --git a/OpenVPN Adapter/OpenVPNClient.mm b/OpenVPN Adapter/OpenVPNClient.mm index 8347722..95fabe0 100644 --- a/OpenVPN Adapter/OpenVPNClient.mm +++ b/OpenVPN Adapter/OpenVPNClient.mm @@ -26,7 +26,7 @@ bool OpenVPNClient::tun_builder_set_remote_address(const std::string &address, b bool OpenVPNClient::tun_builder_add_address(const std::string &address, int prefix_length, const std::string &gateway, bool ipv6, bool net30) { NSString *localAddress = [NSString stringWithUTF8String:address.c_str()]; - NSString *gatewayAddress = !gateway.empty() && gateway.compare("UNSPEC") != 0 ? [NSString stringWithUTF8String:gateway.c_str()] : nil; + NSString *gatewayAddress = [NSString stringWithUTF8String:gateway.c_str()]; return [(__bridge OpenVPNAdapter *)adapter addLocalAddress:localAddress prefixLength:@(prefix_length) gateway:gatewayAddress isIPv6:ipv6]; }