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