Initialize packet flow adapter inside completion handler

This commit is contained in:
Sergey Abramchuk
2017-10-28 12:34:22 +03:00
parent 0cc84b259a
commit 8a0c88cd8d

View File

@@ -179,19 +179,13 @@ public:
return -1;
}
__block NEPacketTunnelFlow *packetFlow;
dispatch_semaphore_t semaphore = dispatch_semaphore_create(0);
[client.delegate openVPNAdapter:client configureTunnelWithNetworkSettings:networkSettings completionHandler:^(NEPacketTunnelFlow * _Nullable flow) {
packetFlow = flow;
client.packetFlowAdapter = [[OpenVPNPacketFlowAdapter alloc] initWithPacketFlow:flow];
dispatch_semaphore_signal(semaphore);
}];
dispatch_semaphore_wait(semaphore, dispatch_time(DISPATCH_TIME_NOW, 30 * NSEC_PER_SEC));
if (packetFlow) {
client.packetFlowAdapter = [[OpenVPNPacketFlowAdapter alloc] initWithPacketFlow:packetFlow];
}
if (client.packetFlowAdapter) {
return client.packetFlowAdapter.socketHandle;
} else {