diff --git a/Sources/OpenVPNAdapter/OpenVPNNetworkSettingsBuilder.h b/Sources/OpenVPNAdapter/OpenVPNNetworkSettingsBuilder.h index 63903d2..d56b5fb 100644 --- a/Sources/OpenVPNAdapter/OpenVPNNetworkSettingsBuilder.h +++ b/Sources/OpenVPNAdapter/OpenVPNNetworkSettingsBuilder.h @@ -33,10 +33,10 @@ NS_ASSUME_NONNULL_BEGIN @property (nonatomic, readonly) NSMutableArray *ipv6IncludedRoutes; @property (nonatomic, readonly) NSMutableArray *ipv6ExcludedRoutes; -@property (nonatomic, readonly) NSMutableArray *dnsServers; -@property (nonatomic, readonly) NSMutableArray *searchDomains; +@property (nonatomic, readonly) NSMutableSet *dnsServers; +@property (nonatomic, readonly) NSMutableSet *searchDomains; -@property (nonatomic, readonly) NSMutableArray *proxyExceptionList; +@property (nonatomic, readonly) NSMutableSet *proxyExceptionList; @property (nonatomic) BOOL autoProxyConfigurationEnabled; @property (nonatomic, copy, nullable) NSURL *proxyAutoConfigurationURL; diff --git a/Sources/OpenVPNAdapter/OpenVPNNetworkSettingsBuilder.m b/Sources/OpenVPNAdapter/OpenVPNNetworkSettingsBuilder.m index 11a31f1..c0e8424 100644 --- a/Sources/OpenVPNAdapter/OpenVPNNetworkSettingsBuilder.m +++ b/Sources/OpenVPNAdapter/OpenVPNNetworkSettingsBuilder.m @@ -11,6 +11,8 @@ @interface OpenVPNNetworkSettingsBuilder () +// TODO: Use NSHashTable for routes to avoid duplicates + @property (nonatomic) NSMutableArray *ipv4LocalAddresses; @property (nonatomic) NSMutableArray *ipv4SubnetMasks; @property (nonatomic) NSMutableArray *ipv4IncludedRoutes; @@ -21,10 +23,10 @@ @property (nonatomic) NSMutableArray *ipv6IncludedRoutes; @property (nonatomic) NSMutableArray *ipv6ExcludedRoutes; -@property (nonatomic) NSMutableArray *dnsServers; -@property (nonatomic) NSMutableArray *searchDomains; +@property (nonatomic) NSMutableSet *dnsServers; +@property (nonatomic) NSMutableSet *searchDomains; -@property (nonatomic) NSMutableArray *proxyExceptionList; +@property (nonatomic) NSMutableSet *proxyExceptionList; @end @@ -58,8 +60,8 @@ } if (self.dnsServers.count) { - NEDNSSettings *dnsSettings = [[NEDNSSettings alloc] initWithServers:self.dnsServers]; - dnsSettings.searchDomains = self.searchDomains; + NEDNSSettings *dnsSettings = [[NEDNSSettings alloc] initWithServers:self.dnsServers.allObjects]; + dnsSettings.searchDomains = self.searchDomains.allObjects; networkSettings.DNSSettings = dnsSettings; } @@ -68,7 +70,7 @@ proxySettings.autoProxyConfigurationEnabled = self.autoProxyConfigurationEnabled; proxySettings.proxyAutoConfigurationURL = self.proxyAutoConfigurationURL; - proxySettings.exceptionList = self.proxyExceptionList; + proxySettings.exceptionList = self.proxyExceptionList.allObjects; proxySettings.HTTPServer = self.httpProxyServer; proxySettings.HTTPEnabled = self.httpProxyServerEnabled; proxySettings.HTTPSServer = self.httpsProxyServer; @@ -124,18 +126,18 @@ return _ipv6ExcludedRoutes; } -- (NSMutableArray *)dnsServers { - if (!_dnsServers) { _dnsServers = [[NSMutableArray alloc] init]; } +- (NSMutableSet *)dnsServers { + if (!_dnsServers) { _dnsServers = [[NSMutableSet alloc] init]; } return _dnsServers; } -- (NSMutableArray *)searchDomains { - if (!_searchDomains) { _searchDomains = [[NSMutableArray alloc] init]; } +- (NSMutableSet *)searchDomains { + if (!_searchDomains) { _searchDomains = [[NSMutableSet alloc] init]; } return _searchDomains; } -- (NSMutableArray *)proxyExceptionList { - if (!_proxyExceptionList) { _proxyExceptionList = [[NSMutableArray alloc] init]; } +- (NSMutableSet *)proxyExceptionList { + if (!_proxyExceptionList) { _proxyExceptionList = [[NSMutableSet alloc] init]; } return _proxyExceptionList; }