Merge branch 'feature/network-issue' into feature/spm

This commit is contained in:
Sergey Abramchuk
2020-03-11 12:04:52 +03:00
@@ -9,8 +9,6 @@
#include <arpa/inet.h> #include <arpa/inet.h>
#include <openvpn/ip/ipcommon.hpp>
@interface OpenVPNPacket () { @interface OpenVPNPacket () {
NSData *_data; NSData *_data;
NSNumber *_protocolFamily; NSNumber *_protocolFamily;
@@ -22,7 +20,6 @@
- (instancetype)initWithVPNData:(NSData *)data { - (instancetype)initWithVPNData:(NSData *)data {
if (self = [super init]) { if (self = [super init]) {
#if TARGET_OS_IPHONE
// Get network protocol family from data prefix // Get network protocol family from data prefix
NSUInteger prefix_size = sizeof(uint32_t); NSUInteger prefix_size = sizeof(uint32_t);
@@ -32,25 +29,6 @@
NSRange range = NSMakeRange(prefix_size, data.length - prefix_size); NSRange range = NSMakeRange(prefix_size, data.length - prefix_size);
NSData *packetData = [data subdataWithRange:range]; NSData *packetData = [data subdataWithRange:range];
#else
// Get network protocol family from packet header
uint8_t header = 0;
[data getBytes:&header length:1];
uint32_t protocol = PF_UNSPEC;
uint32_t version = openvpn::IPCommon::version(header);
switch (version) {
case 4:
protocol = PF_INET;
break;
case 6:
protocol = PF_INET6;
break;
}
NSData *packetData = data;
#endif
_data = packetData; _data = packetData;
_protocolFamily = @(protocol); _protocolFamily = @(protocol);
@@ -67,8 +45,7 @@
} }
- (NSData *)vpnData { - (NSData *)vpnData {
#if TARGET_OS_IPHONE // Prepend data with network protocol. It should be done because OpenVPN uses uint32_t prefixes containing network
// Prepend data with network protocol. It should be done because OpenVPN on iOS uses uint32_t prefixes containing network
// protocol. // protocol.
uint32_t prefix = CFSwapInt32HostToBig(_protocolFamily.unsignedIntegerValue); uint32_t prefix = CFSwapInt32HostToBig(_protocolFamily.unsignedIntegerValue);
NSUInteger prefix_size = sizeof(uint32_t); NSUInteger prefix_size = sizeof(uint32_t);
@@ -79,9 +56,6 @@
[data appendData:_data]; [data appendData:_data];
return data; return data;
#else
return _data;
#endif
} }
- (NSData *)packetFlowData { - (NSData *)packetFlowData {