2017-02-11 20:26:50 +08:00
|
|
|
//
|
|
|
|
// OpenVPNAdapter+Provider.h
|
|
|
|
// OpenVPN iOS Client
|
|
|
|
//
|
|
|
|
// Created by Sergey Abramchuk on 11.02.17.
|
|
|
|
//
|
|
|
|
//
|
|
|
|
|
2017-02-11 21:26:58 +08:00
|
|
|
#import "OpenVPNEvent.h"
|
|
|
|
|
2017-02-11 20:26:50 +08:00
|
|
|
#import "OpenVPNAdapter.h"
|
|
|
|
|
2017-02-11 21:26:58 +08:00
|
|
|
@class NEPacketTunnelNetworkSettings;
|
|
|
|
|
2017-03-11 18:48:47 +08:00
|
|
|
// TODO: Add documentation to properties and methods
|
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
*/
|
2017-03-10 00:08:24 +08:00
|
|
|
@protocol OpenVPNAdapterPacketFlow <NSObject>
|
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
|
|
|
|
@param completionHandler <#completionHandler description#>
|
|
|
|
*/
|
|
|
|
- (void)readPacketsWithCompletionHandler:(nonnull void (^)(NSArray<NSData *> * _Nonnull packets, NSArray<NSNumber *> * _Nonnull protocols))completionHandler;
|
|
|
|
|
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
|
|
|
|
@param packets <#packets description#>
|
|
|
|
@param protocols <#protocols description#>
|
|
|
|
@return <#return value description#>
|
|
|
|
*/
|
2017-03-10 00:08:24 +08:00
|
|
|
- (BOOL)writePackets:(nonnull NSArray<NSData *> *)packets withProtocols:(nonnull NSArray<NSNumber *> *)protocols;
|
|
|
|
|
|
|
|
@end
|
2017-02-11 21:26:58 +08:00
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
*/
|
2017-02-11 21:26:58 +08:00
|
|
|
@protocol OpenVPNAdapterDelegate <NSObject>
|
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
|
|
|
|
@param settings <#settings description#>
|
|
|
|
@param callback <#callback description#>
|
|
|
|
*/
|
2017-02-11 21:41:09 +08:00
|
|
|
- (void)configureTunnelWithSettings:(nonnull NEPacketTunnelNetworkSettings *)settings
|
2017-03-10 00:08:24 +08:00
|
|
|
callback:(nonnull void (^)(id<OpenVPNAdapterPacketFlow> _Nullable flow))callback
|
2017-02-11 21:41:09 +08:00
|
|
|
NS_SWIFT_NAME(configureTunnel(settings:callback:));
|
2017-02-11 21:26:58 +08:00
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
|
|
|
|
@param event <#event description#>
|
|
|
|
@param message <#message description#>
|
|
|
|
*/
|
2017-02-11 21:26:58 +08:00
|
|
|
- (void)handleEvent:(OpenVPNEvent)event
|
|
|
|
message:(nullable NSString *)message
|
|
|
|
NS_SWIFT_NAME(handle(event:message:));
|
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
|
|
|
|
@param error <#error description#>
|
|
|
|
*/
|
2017-02-11 21:26:58 +08:00
|
|
|
- (void)handleError:(nonnull NSError *)error
|
|
|
|
NS_SWIFT_NAME(handle(error:));
|
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
|
|
|
|
@param logMessage <#logMessage description#>
|
|
|
|
*/
|
2017-03-18 01:12:07 +08:00
|
|
|
- (void)handleLog:(nonnull NSString *)logMessage
|
|
|
|
NS_SWIFT_NAME(handle(logMessage:));
|
|
|
|
|
2017-02-11 21:26:58 +08:00
|
|
|
@end
|
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
*/
|
2017-02-11 20:26:50 +08:00
|
|
|
@interface OpenVPNAdapter (Provider)
|
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
*/
|
2017-03-07 02:24:02 +08:00
|
|
|
@property (strong, nonatomic, nullable) NSString *username;
|
2017-03-23 00:22:47 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
*/
|
2017-03-07 02:24:02 +08:00
|
|
|
@property (strong, nonatomic, nullable) NSString *password;
|
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
*/
|
2017-02-11 21:26:58 +08:00
|
|
|
@property (weak, nonatomic, null_unspecified) id<OpenVPNAdapterDelegate> delegate;
|
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
<#Description#>
|
|
|
|
|
|
|
|
@param settings <#settings description#>
|
|
|
|
@param error <#error description#>
|
|
|
|
@return <#return value description#>
|
|
|
|
*/
|
|
|
|
- (BOOL)configureUsingSettings:(nonnull NSData *)settings
|
2017-03-07 02:24:02 +08:00
|
|
|
error:(out NSError * __nullable * __nullable)error
|
|
|
|
NS_SWIFT_NAME(configure(using:));
|
2017-02-11 21:45:02 +08:00
|
|
|
|
2017-03-23 00:22:47 +08:00
|
|
|
/**
|
|
|
|
Establish connection with the VPN server
|
|
|
|
*/
|
2017-02-11 21:45:02 +08:00
|
|
|
- (void)connect;
|
2017-03-23 00:22:47 +08:00
|
|
|
|
|
|
|
/**
|
|
|
|
Close connection with the VPN server
|
|
|
|
*/
|
2017-02-11 21:45:02 +08:00
|
|
|
- (void)disconnect;
|
|
|
|
|
2017-02-11 20:26:50 +08:00
|
|
|
@end
|