extension PacketTunnelProvider: Tun2socksPacketFlowProtocol{
func proxyPackets() {
self.packetFlow.readPackets {[weak self] (packets: [Data], protocols: [NSNumber]) in
for packet in packets {
autoreleasepool{
Tun2socksInputPacket(packet)
}
}
self?.proxyPackets()
}
}
public func writePacket(_ packet: Data?) {
NSLog("write packet 1")
self.packetFlow.writePackets([packet!], withProtocols: [AF_INET as NSNumber])
}
}
extension NEPacketTunnelFlow: Tun2socksPacketFlowProtocol{
public func writePacket(_ packet: Data?) {
NSLog(self.description)
//NSLog("write packet 2")
os_log("write packet called !!!")
let protocolNumber = protocolNumber(for: packet!)
NSLog(protocolNumber.stringValue)
let b = packet?.base64EncodedString()
NSLog(b!)
let v = self.writePackets([packet!], withProtocols: [protocolNumber])
NSLog(v.description)
}
private func protocolNumber(for packet: Data) -> NSNumber {
guard !packet.isEmpty else {
return AF_INET as NSNumber
}
// 'packet' contains the decrypted incoming IP packet data
// The first 4 bits identify the IP version
let ipVersion = (packet[0] & 0xf0) >> 4
return (ipVersion == 6) ? AF_INET6 as NSNumber : AF_INET as NSNumber
}
}
What's causing this problem when calling writepackets returns true but the browser request keeps loading