mirror of
https://github.com/deneraraujo/OpenVPNAdapter.git
synced 2026-02-11 00:00:08 +08:00
Wrap disable cert, ssl debug level and compression mede properties
This commit is contained in:
@@ -10,10 +10,17 @@
|
||||
|
||||
// TODO: Wrap ClientAPI::Config into Objective-C class
|
||||
|
||||
/**
|
||||
Transport protocol options
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OpenVPNTransportProtocol) {
|
||||
///
|
||||
OpenVPNTransportProtocolUDP,
|
||||
///
|
||||
OpenVPNTransportProtocolTCP,
|
||||
///
|
||||
OpenVPNTransportProtocolAdaptive,
|
||||
/// Use a transport protocol specified in the profile
|
||||
OpenVPNTransportProtocolDefault
|
||||
};
|
||||
|
||||
@@ -29,6 +36,20 @@ typedef NS_ENUM(NSInteger, OpenVPNIPv6Preference) {
|
||||
OpenVPNIPv6PreferenceDefault
|
||||
};
|
||||
|
||||
/**
|
||||
Compression mode options
|
||||
*/
|
||||
typedef NS_ENUM(NSInteger, OpenVPNCompressionMode) {
|
||||
/// Allow compression on both uplink and downlink
|
||||
OpenVPNCompressionModeEnabled,
|
||||
/// Support compression stubs only
|
||||
OpenVPNCompressionModeDisabled,
|
||||
/// Allow compression on downlink only (i.e. server -> client)
|
||||
OpenVPNCompressionModeAsym,
|
||||
/// Default behavior (support compression stubs only)
|
||||
OpenVPNCompressionModeDefault
|
||||
};
|
||||
|
||||
@interface OpenVPNConfiguration : NSObject
|
||||
|
||||
/**
|
||||
@@ -86,4 +107,19 @@ typedef NS_ENUM(NSInteger, OpenVPNIPv6Preference) {
|
||||
*/
|
||||
@property (nonatomic) BOOL autologinSessions;
|
||||
|
||||
/**
|
||||
If YES, don't send client cert/key to peer
|
||||
*/
|
||||
@property (nonatomic) BOOL disableClientCert;
|
||||
|
||||
/**
|
||||
SSL library debug level
|
||||
*/
|
||||
@property (nonatomic) NSInteger sslDebugLevel;
|
||||
|
||||
/**
|
||||
Compression mode
|
||||
*/
|
||||
@property (nonatomic) OpenVPNCompressionMode compressionMode;
|
||||
|
||||
@end
|
||||
|
||||
@@ -28,7 +28,7 @@ using namespace openvpn;
|
||||
@implementation OpenVPNConfiguration
|
||||
|
||||
- (NSData *)fileContent {
|
||||
return _config.content.size() != 0 ? [NSData dataWithBytes:_config.content.data() length:_config.content.size()] : nil;
|
||||
return !_config.content.empty() ? [NSData dataWithBytes:_config.content.data() length:_config.content.size()] : nil;
|
||||
}
|
||||
|
||||
- (void)setFileContent:(NSData *)fileContent {
|
||||
@@ -66,7 +66,7 @@ using namespace openvpn;
|
||||
}
|
||||
|
||||
- (NSString *)guiVersion {
|
||||
return _config.guiVersion.size() != 0 ? [NSString stringWithUTF8String:_config.guiVersion.c_str()] : nil;
|
||||
return !_config.guiVersion.empty() ? [NSString stringWithUTF8String:_config.guiVersion.c_str()] : nil;
|
||||
}
|
||||
|
||||
- (void)setGuiVersion:(NSString *)guiVersion {
|
||||
@@ -74,7 +74,7 @@ using namespace openvpn;
|
||||
}
|
||||
|
||||
- (NSString *)server {
|
||||
return _config.serverOverride.size() != 0 ? [NSString stringWithUTF8String:_config.serverOverride.c_str()] : nil;
|
||||
return !_config.serverOverride.empty() ? [NSString stringWithUTF8String:_config.serverOverride.c_str()] : nil;
|
||||
}
|
||||
|
||||
- (void)setServer:(NSString *)serverOverride {
|
||||
@@ -189,4 +189,60 @@ using namespace openvpn;
|
||||
_config.autologinSessions = autologinSessions;
|
||||
}
|
||||
|
||||
- (BOOL)disableClientCert {
|
||||
return _config.disableClientCert;
|
||||
}
|
||||
|
||||
- (void)setDisableClientCert:(BOOL)disableClientCert {
|
||||
_config.disableClientCert = disableClientCert;
|
||||
}
|
||||
|
||||
- (NSInteger)sslDebugLevel {
|
||||
return _config.sslDebugLevel;
|
||||
}
|
||||
|
||||
- (void)setSslDebugLevel:(NSInteger)sslDebugLevel {
|
||||
_config.sslDebugLevel = sslDebugLevel;
|
||||
}
|
||||
|
||||
- (OpenVPNCompressionMode)compressionMode {
|
||||
NSDictionary *options = @{
|
||||
@"yes": @(OpenVPNCompressionModeEnabled),
|
||||
@"no": @(OpenVPNCompressionModeDisabled),
|
||||
@"asym": @(OpenVPNCompressionModeAsym),
|
||||
@"": @(OpenVPNCompressionModeDefault)
|
||||
};
|
||||
|
||||
NSString *currentValue = [NSString stringWithUTF8String:_config.compressionMode.c_str()];
|
||||
|
||||
NSNumber *preference = options[currentValue];
|
||||
NSAssert(preference != nil, @"Incorrect compressionMode value");
|
||||
|
||||
return (OpenVPNCompressionMode)[preference integerValue];
|
||||
}
|
||||
|
||||
- (void)setCompressionMode:(OpenVPNCompressionMode)compressionMode {
|
||||
switch (compressionMode) {
|
||||
case OpenVPNCompressionModeEnabled:
|
||||
_config.compressionMode = "yes";
|
||||
break;
|
||||
|
||||
case OpenVPNCompressionModeDisabled:
|
||||
_config.compressionMode = "no";
|
||||
break;
|
||||
|
||||
case OpenVPNCompressionModeAsym:
|
||||
_config.compressionMode = "asym";
|
||||
break;
|
||||
|
||||
case OpenVPNCompressionModeDefault:
|
||||
_config.compressionMode = "";
|
||||
break;
|
||||
|
||||
default:
|
||||
NSAssert(NO, @"Incorrect OpenVPNCompressionMode value");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
@end
|
||||
|
||||
Reference in New Issue
Block a user