diff --git a/OpenVPN Tunnel Provider/OpenVPNAdapter+Provider.h b/OpenVPN Tunnel Provider/OpenVPNAdapter+Provider.h index 78b4870..b101e62 100644 --- a/OpenVPN Tunnel Provider/OpenVPNAdapter+Provider.h +++ b/OpenVPN Tunnel Provider/OpenVPNAdapter+Provider.h @@ -32,13 +32,14 @@ NS_SWIFT_NAME(handle(error:)); @interface OpenVPNAdapter (Provider) +@property (strong, nonatomic, nullable) NSString *username; +@property (strong, nonatomic, nullable) NSString *password; + @property (weak, nonatomic, null_unspecified) id delegate; -- (BOOL)configureWithUsername:(nonnull NSString *)username - password:(nonnull NSString *)password - configuration:(nonnull NSData *)configuration - error:(out NSError * __nullable * __nullable)error -NS_SWIFT_NAME(configure(username:password:configuration:)); +- (BOOL)configureUsing:(nonnull NSData *)settings + error:(out NSError * __nullable * __nullable)error +NS_SWIFT_NAME(configure(using:)); - (void)connect; - (void)disconnect; diff --git a/OpenVPN Tunnel Provider/OpenVPNAdapter.mm b/OpenVPN Tunnel Provider/OpenVPNAdapter.mm index 4113b8a..346ecac 100644 --- a/OpenVPN Tunnel Provider/OpenVPNAdapter.mm +++ b/OpenVPN Tunnel Provider/OpenVPNAdapter.mm @@ -290,15 +290,19 @@ static void socketCallback(CFSocketRef socket, CFSocketCallBackType type, CFData @implementation OpenVPNAdapter (Provider) +@dynamic username; +@dynamic password; + +@dynamic delegate; + #pragma mark Client Configuration -- (BOOL)configureWithUsername:(NSString *)username password:(NSString *)password configuration:(NSData *)configuration error:(out NSError * __autoreleasing _Nullable *)error { - NSString *vpnConfiguration = [[NSString alloc] initWithData:configuration encoding:NSUTF8StringEncoding]; +- (BOOL)configureUsing:(NSData *)settings error:(out NSError * __autoreleasing _Nullable *)error { + NSString *vpnConfiguration = [[NSString alloc] initWithData:settings encoding:NSUTF8StringEncoding]; if (vpnConfiguration == nil) { if (error) *error = [NSError errorWithDomain:OpenVPNClientErrorDomain code:OpenVPNErrorConfigurationFailure userInfo:@{ - // TODO: Write error message - NSLocalizedDescriptionKey: @"Failed to ..." + NSLocalizedDescriptionKey: @"Failed to read VPN configuration" }]; return NO; } @@ -318,8 +322,8 @@ static void socketCallback(CFSocketRef socket, CFSocketCallBackType type, CFData } ClientAPI::ProvideCreds creds; - creds.username = [username UTF8String]; - creds.password = [password UTF8String]; + creds.username = [self.username UTF8String]; + creds.password = [self.password UTF8String]; ClientAPI::Status creds_status = self.vpnClient->provide_creds(creds); if (creds_status.error) {