Add new properties to the OpenVPNCOnfiguration

This commit is contained in:
Sergey Abramchuk
2019-11-02 10:29:21 +03:00
parent aa396dad2d
commit 7331ae5fad
2 changed files with 53 additions and 0 deletions

View File

@@ -37,6 +37,26 @@ typedef NS_ENUM(NSInteger, OpenVPNTLSCertProfile);
*/
@property (nullable, nonatomic) NSString *guiVersion;
/**
Set to a comma seperated list of supported SSO mechanisms that may
be signalled via INFO_PRE to the client.
"openurl" is to continue authentication by opening an url in a browser
"crtext" gives a challenge response in text format that needs to
responded via control channel.
Passed to the server as IV_SSO.
*/
@property (nullable, nonatomic) NSString *ssoMethods;
/**
Override the string that is passed as IV_HWADDR to the server.
*/
@property (nullable, nonatomic) NSString *hardwareAdressOverride;
/**
Set the string that is passed to the server as IV_PLAT_VER
*/
@property (nullable, nonatomic) NSString *platformVersion;
/**
Use a different server than that specified in "remote"
option of profile

View File

@@ -260,6 +260,30 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default";
_config.guiVersion = guiVersion ? std::string([guiVersion UTF8String]) : "";
}
- (NSString *)ssoMethods {
return !_config.ssoMethods.empty() ? [NSString stringWithUTF8String:_config.ssoMethods.c_str()] : nil;
}
- (void)setSsoMethods:(NSString *)ssoMethods {
_config.ssoMethods = ssoMethods ? std::string([ssoMethods UTF8String]) : "";
}
- (NSString *)hardwareAdressOverride {
return !_config.hwAddrOverride.empty() ? [NSString stringWithUTF8String:_config.hwAddrOverride.c_str()] : nil;
}
- (void)setHardwareAdressOverride:(NSString *)hardwareAdressOverride {
_config.hwAddrOverride = hardwareAdressOverride ? std::string([hardwareAdressOverride UTF8String]) : "";
}
- (NSString *)platformVersion {
return !_config.platformVersion.empty() ? [NSString stringWithUTF8String:_config.platformVersion.c_str()] : nil;
}
- (void)setPlatformVersion:(NSString *)platformVersion {
_config.platformVersion = platformVersion ? std::string([platformVersion UTF8String]) : "";
}
- (NSString *)server {
return !_config.serverOverride.empty() ? [NSString stringWithUTF8String:_config.serverOverride.c_str()] : nil;
}
@@ -481,6 +505,9 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default";
configuration.fileContent = [self.fileContent copyWithZone:zone];
configuration.settings = [self.settings copyWithZone:zone];
configuration.guiVersion = [self.guiVersion copyWithZone:zone];
configuration.ssoMethods = [self.ssoMethods copyWithZone:zone];
configuration.hardwareAdressOverride = [self.hardwareAdressOverride copyWithZone:zone];
configuration.platformVersion = [self.platformVersion copyWithZone:zone];
configuration.server = [self.server copyWithZone:zone];
configuration.proto = self.proto;
configuration.ipv6 = self.ipv6;
@@ -508,6 +535,9 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default";
[aCoder encodeObject:self.fileContent forKey:NSStringFromSelector(@selector(fileContent))];
[aCoder encodeObject:self.settings forKey:NSStringFromSelector(@selector(settings))];
[aCoder encodeObject:self.guiVersion forKey:NSStringFromSelector(@selector(guiVersion))];
[aCoder encodeObject:self.ssoMethods forKey:NSStringFromSelector(@selector(ssoMethods))];
[aCoder encodeObject:self.hardwareAdressOverride forKey:NSStringFromSelector(@selector(hardwareAdressOverride))];
[aCoder encodeObject:self.platformVersion forKey:NSStringFromSelector(@selector(platformVersion))];
[aCoder encodeObject:self.server forKey:NSStringFromSelector(@selector(server))];
[aCoder encodeInteger:self.proto forKey:NSStringFromSelector(@selector(proto))];
[aCoder encodeInteger:self.ipv6 forKey:NSStringFromSelector(@selector(ipv6))];
@@ -535,6 +565,9 @@ NSString *const OpenVPNTLSCertProfileDefaultValue = @"default";
self.fileContent = [aDecoder decodeObjectOfClass:[NSData class] forKey:NSStringFromSelector(@selector(fileContent))];
self.settings = [aDecoder decodeObjectOfClass:[NSDictionary class] forKey:NSStringFromSelector(@selector(settings))];
self.guiVersion = [aDecoder decodeObjectOfClass:[NSString class] forKey:NSStringFromSelector(@selector(guiVersion))];
self.ssoMethods = [aDecoder decodeObjectOfClass:[NSString class] forKey:NSStringFromSelector(@selector(ssoMethods))];
self.hardwareAdressOverride = [aDecoder decodeObjectOfClass:[NSString class] forKey:NSStringFromSelector(@selector(hardwareAdressOverride))];
self.platformVersion = [aDecoder decodeObjectOfClass:[NSString class] forKey:NSStringFromSelector(@selector(platformVersion))];
self.server = [aDecoder decodeObjectOfClass:[NSString class] forKey:NSStringFromSelector(@selector(server))];
self.proto = (OpenVPNTransportProtocol)[aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(proto))];
self.ipv6 = (OpenVPNIPv6Preference)[aDecoder decodeIntegerForKey:NSStringFromSelector(@selector(ipv6))];