Use mutable sets for dns, domains, and exception list

This commit is contained in:
Sergey Abramchuk
2018-10-16 18:23:24 +03:00
parent 9ee01d24e2
commit 3231a87660
2 changed files with 17 additions and 15 deletions
@@ -33,10 +33,10 @@ NS_ASSUME_NONNULL_BEGIN
@property (nonatomic, readonly) NSMutableArray<NEIPv6Route *> *ipv6IncludedRoutes; @property (nonatomic, readonly) NSMutableArray<NEIPv6Route *> *ipv6IncludedRoutes;
@property (nonatomic, readonly) NSMutableArray<NEIPv6Route *> *ipv6ExcludedRoutes; @property (nonatomic, readonly) NSMutableArray<NEIPv6Route *> *ipv6ExcludedRoutes;
@property (nonatomic, readonly) NSMutableArray<NSString *> *dnsServers; @property (nonatomic, readonly) NSMutableSet<NSString *> *dnsServers;
@property (nonatomic, readonly) NSMutableArray<NSString *> *searchDomains; @property (nonatomic, readonly) NSMutableSet<NSString *> *searchDomains;
@property (nonatomic, readonly) NSMutableArray<NSString *> *proxyExceptionList; @property (nonatomic, readonly) NSMutableSet<NSString *> *proxyExceptionList;
@property (nonatomic) BOOL autoProxyConfigurationEnabled; @property (nonatomic) BOOL autoProxyConfigurationEnabled;
@property (nonatomic, copy, nullable) NSURL *proxyAutoConfigurationURL; @property (nonatomic, copy, nullable) NSURL *proxyAutoConfigurationURL;
@@ -11,6 +11,8 @@
@interface OpenVPNNetworkSettingsBuilder () @interface OpenVPNNetworkSettingsBuilder ()
// TODO: Use NSHashTable for routes to avoid duplicates
@property (nonatomic) NSMutableArray<NSString *> *ipv4LocalAddresses; @property (nonatomic) NSMutableArray<NSString *> *ipv4LocalAddresses;
@property (nonatomic) NSMutableArray<NSString *> *ipv4SubnetMasks; @property (nonatomic) NSMutableArray<NSString *> *ipv4SubnetMasks;
@property (nonatomic) NSMutableArray<NEIPv4Route *> *ipv4IncludedRoutes; @property (nonatomic) NSMutableArray<NEIPv4Route *> *ipv4IncludedRoutes;
@@ -21,10 +23,10 @@
@property (nonatomic) NSMutableArray<NEIPv6Route *> *ipv6IncludedRoutes; @property (nonatomic) NSMutableArray<NEIPv6Route *> *ipv6IncludedRoutes;
@property (nonatomic) NSMutableArray<NEIPv6Route *> *ipv6ExcludedRoutes; @property (nonatomic) NSMutableArray<NEIPv6Route *> *ipv6ExcludedRoutes;
@property (nonatomic) NSMutableArray<NSString *> *dnsServers; @property (nonatomic) NSMutableSet<NSString *> *dnsServers;
@property (nonatomic) NSMutableArray<NSString *> *searchDomains; @property (nonatomic) NSMutableSet<NSString *> *searchDomains;
@property (nonatomic) NSMutableArray<NSString *> *proxyExceptionList; @property (nonatomic) NSMutableSet<NSString *> *proxyExceptionList;
@end @end
@@ -58,8 +60,8 @@
} }
if (self.dnsServers.count) { if (self.dnsServers.count) {
NEDNSSettings *dnsSettings = [[NEDNSSettings alloc] initWithServers:self.dnsServers]; NEDNSSettings *dnsSettings = [[NEDNSSettings alloc] initWithServers:self.dnsServers.allObjects];
dnsSettings.searchDomains = self.searchDomains; dnsSettings.searchDomains = self.searchDomains.allObjects;
networkSettings.DNSSettings = dnsSettings; networkSettings.DNSSettings = dnsSettings;
} }
@@ -68,7 +70,7 @@
proxySettings.autoProxyConfigurationEnabled = self.autoProxyConfigurationEnabled; proxySettings.autoProxyConfigurationEnabled = self.autoProxyConfigurationEnabled;
proxySettings.proxyAutoConfigurationURL = self.proxyAutoConfigurationURL; proxySettings.proxyAutoConfigurationURL = self.proxyAutoConfigurationURL;
proxySettings.exceptionList = self.proxyExceptionList; proxySettings.exceptionList = self.proxyExceptionList.allObjects;
proxySettings.HTTPServer = self.httpProxyServer; proxySettings.HTTPServer = self.httpProxyServer;
proxySettings.HTTPEnabled = self.httpProxyServerEnabled; proxySettings.HTTPEnabled = self.httpProxyServerEnabled;
proxySettings.HTTPSServer = self.httpsProxyServer; proxySettings.HTTPSServer = self.httpsProxyServer;
@@ -124,18 +126,18 @@
return _ipv6ExcludedRoutes; return _ipv6ExcludedRoutes;
} }
- (NSMutableArray<NSString *> *)dnsServers { - (NSMutableSet<NSString *> *)dnsServers {
if (!_dnsServers) { _dnsServers = [[NSMutableArray alloc] init]; } if (!_dnsServers) { _dnsServers = [[NSMutableSet alloc] init]; }
return _dnsServers; return _dnsServers;
} }
- (NSMutableArray<NSString *> *)searchDomains { - (NSMutableSet<NSString *> *)searchDomains {
if (!_searchDomains) { _searchDomains = [[NSMutableArray alloc] init]; } if (!_searchDomains) { _searchDomains = [[NSMutableSet alloc] init]; }
return _searchDomains; return _searchDomains;
} }
- (NSMutableArray<NSString *> *)proxyExceptionList { - (NSMutableSet<NSString *> *)proxyExceptionList {
if (!_proxyExceptionList) { _proxyExceptionList = [[NSMutableArray alloc] init]; } if (!_proxyExceptionList) { _proxyExceptionList = [[NSMutableSet alloc] init]; }
return _proxyExceptionList; return _proxyExceptionList;
} }