mirror of
https://github.com/deneraraujo/OpenVPNAdapter.git
synced 2026-04-06 00:00:03 +08:00
Define enum for transport protocol used in proto property and rename ipv6 preference enum, server and proto
This commit is contained in:
@@ -10,16 +10,23 @@
|
|||||||
|
|
||||||
// TODO: Wrap ClientAPI::Config into Objective-C class
|
// TODO: Wrap ClientAPI::Config into Objective-C class
|
||||||
|
|
||||||
|
typedef NS_ENUM(NSInteger, OpenVPNTransportProtocol) {
|
||||||
|
OpenVPNTransportProtocolUDP,
|
||||||
|
OpenVPNTransportProtocolTCP,
|
||||||
|
OpenVPNTransportProtocolAdaptive,
|
||||||
|
OpenVPNTransportProtocolDefault
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
IPv6 preference options
|
IPv6 preference options
|
||||||
*/
|
*/
|
||||||
typedef NS_ENUM(NSInteger, IPv6Preference) {
|
typedef NS_ENUM(NSInteger, OpenVPNIPv6Preference) {
|
||||||
/// Request combined IPv4/IPv6 tunnel
|
/// Request combined IPv4/IPv6 tunnel
|
||||||
IPv6PreferenceEnabled,
|
OpenVPNIPv6PreferenceEnabled,
|
||||||
/// Disable IPv6, so tunnel will be IPv4-only
|
/// Disable IPv6, so tunnel will be IPv4-only
|
||||||
IPv6PreferenceDisabled,
|
OpenVPNIPv6PreferenceDisabled,
|
||||||
/// Leave decision to server
|
/// Leave decision to server
|
||||||
IPv6PreferenceDefault
|
OpenVPNIPv6PreferenceDefault
|
||||||
};
|
};
|
||||||
|
|
||||||
@interface OpenVPNConfiguration : NSObject
|
@interface OpenVPNConfiguration : NSObject
|
||||||
@@ -46,18 +53,17 @@ typedef NS_ENUM(NSInteger, IPv6Preference) {
|
|||||||
Use a different server than that specified in "remote"
|
Use a different server than that specified in "remote"
|
||||||
option of profile
|
option of profile
|
||||||
*/
|
*/
|
||||||
@property (nullable, nonatomic) NSString *serverOverride;
|
@property (nullable, nonatomic) NSString *server;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Force a given transport protocol
|
Force a given transport protocol
|
||||||
Should be tcp, udp, or adaptive.
|
|
||||||
*/
|
*/
|
||||||
@property (nullable, nonatomic) NSString *protoOverride;
|
@property (nonatomic) OpenVPNTransportProtocol proto;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
IPv6 preference
|
IPv6 preference
|
||||||
*/
|
*/
|
||||||
@property (nonatomic) IPv6Preference ipv6;
|
@property (nonatomic) OpenVPNIPv6Preference ipv6;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Connection timeout in seconds, or 0 to retry indefinitely
|
Connection timeout in seconds, or 0 to retry indefinitely
|
||||||
@@ -75,4 +81,9 @@ typedef NS_ENUM(NSInteger, IPv6Preference) {
|
|||||||
*/
|
*/
|
||||||
@property (nonatomic) BOOL googleDNSFallback;
|
@property (nonatomic) BOOL googleDNSFallback;
|
||||||
|
|
||||||
|
/**
|
||||||
|
Enable autologin sessions
|
||||||
|
*/
|
||||||
|
@property (nonatomic) BOOL autologinSessions;
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
@@ -73,28 +73,56 @@ using namespace openvpn;
|
|||||||
_config.guiVersion = guiVersion ? std::string([guiVersion UTF8String]) : "";
|
_config.guiVersion = guiVersion ? std::string([guiVersion UTF8String]) : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)serverOverride {
|
- (NSString *)server {
|
||||||
return _config.serverOverride.size() != 0 ? [NSString stringWithUTF8String:_config.serverOverride.c_str()] : nil;
|
return _config.serverOverride.size() != 0 ? [NSString stringWithUTF8String:_config.serverOverride.c_str()] : nil;
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setServerOverride:(NSString *)serverOverride {
|
- (void)setServer:(NSString *)serverOverride {
|
||||||
_config.serverOverride = serverOverride ? std::string([serverOverride UTF8String]) : "";
|
_config.serverOverride = serverOverride ? std::string([serverOverride UTF8String]) : "";
|
||||||
}
|
}
|
||||||
|
|
||||||
- (NSString *)protoOverride {
|
- (OpenVPNTransportProtocol)proto {
|
||||||
return _config.protoOverride.size() != 0 ? [NSString stringWithUTF8String:_config.protoOverride.c_str()] : nil;
|
|
||||||
}
|
|
||||||
|
|
||||||
- (void)setProtoOverride:(NSString *)protoOverride {
|
|
||||||
_config.protoOverride = protoOverride ? std::string([protoOverride UTF8String]) : "";
|
|
||||||
}
|
|
||||||
|
|
||||||
- (IPv6Preference)ipv6 {
|
|
||||||
NSDictionary *options = @{
|
NSDictionary *options = @{
|
||||||
@"yes": @(IPv6PreferenceEnabled),
|
@"udp": @(OpenVPNTransportProtocolUDP),
|
||||||
@"no": @(IPv6PreferenceDisabled),
|
@"tcp": @(OpenVPNTransportProtocolTCP),
|
||||||
@"default": @(IPv6PreferenceDefault),
|
@"adaptive": @(OpenVPNTransportProtocolAdaptive),
|
||||||
@"": @(IPv6PreferenceDefault)
|
@"": @(OpenVPNTransportProtocolDefault)
|
||||||
|
};
|
||||||
|
|
||||||
|
NSString *currentValue = [NSString stringWithUTF8String:_config.protoOverride.c_str()];
|
||||||
|
|
||||||
|
NSNumber *transportProtocol = options[currentValue];
|
||||||
|
NSAssert(transportProtocol != nil, @"Incorrect ipv6 value");
|
||||||
|
|
||||||
|
return (OpenVPNTransportProtocol)[transportProtocol integerValue];
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setProto:(OpenVPNTransportProtocol)proto {
|
||||||
|
switch (proto) {
|
||||||
|
case OpenVPNTransportProtocolUDP:
|
||||||
|
_config.protoOverride = "udp";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OpenVPNTransportProtocolTCP:
|
||||||
|
_config.protoOverride = "tcp";
|
||||||
|
break;
|
||||||
|
|
||||||
|
case OpenVPNTransportProtocolAdaptive:
|
||||||
|
_config.protoOverride = "adaptive";
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
_config.protoOverride = "";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- (OpenVPNIPv6Preference)ipv6 {
|
||||||
|
NSDictionary *options = @{
|
||||||
|
@"yes": @(OpenVPNIPv6PreferenceEnabled),
|
||||||
|
@"no": @(OpenVPNIPv6PreferenceDisabled),
|
||||||
|
@"default": @(OpenVPNIPv6PreferenceDefault),
|
||||||
|
@"": @(OpenVPNIPv6PreferenceDefault)
|
||||||
};
|
};
|
||||||
|
|
||||||
NSString *currentValue = [NSString stringWithUTF8String:_config.ipv6.c_str()];
|
NSString *currentValue = [NSString stringWithUTF8String:_config.ipv6.c_str()];
|
||||||
@@ -102,20 +130,20 @@ using namespace openvpn;
|
|||||||
NSNumber *preference = options[currentValue];
|
NSNumber *preference = options[currentValue];
|
||||||
NSAssert(preference != nil, @"Incorrect ipv6 value");
|
NSAssert(preference != nil, @"Incorrect ipv6 value");
|
||||||
|
|
||||||
return (IPv6Preference)[preference integerValue];
|
return (OpenVPNIPv6Preference)[preference integerValue];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (void)setIpv6:(IPv6Preference)ipv6 {
|
- (void)setIpv6:(OpenVPNIPv6Preference)ipv6 {
|
||||||
switch (ipv6) {
|
switch (ipv6) {
|
||||||
case IPv6PreferenceEnabled:
|
case OpenVPNIPv6PreferenceEnabled:
|
||||||
_config.ipv6 = "yes";
|
_config.ipv6 = "yes";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IPv6PreferenceDisabled:
|
case OpenVPNIPv6PreferenceDisabled:
|
||||||
_config.ipv6 = "no";
|
_config.ipv6 = "no";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case IPv6PreferenceDefault:
|
case OpenVPNIPv6PreferenceDefault:
|
||||||
_config.ipv6 = "default";
|
_config.ipv6 = "default";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@@ -149,4 +177,12 @@ using namespace openvpn;
|
|||||||
_config.googleDnsFallback = googleDNSFallback;
|
_config.googleDnsFallback = googleDNSFallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
- (BOOL)autologinSessions {
|
||||||
|
return _config.autologinSessions;
|
||||||
|
}
|
||||||
|
|
||||||
|
- (void)setAutologinSessions:(BOOL)autologinSessions {
|
||||||
|
_config.autologinSessions = autologinSessions;
|
||||||
|
}
|
||||||
|
|
||||||
@end
|
@end
|
||||||
|
|||||||
Reference in New Issue
Block a user