| 334 | } |
| 335 | |
| 336 | ACTOR void extProxy(NetworkAddress listenAddr, NetworkAddress connectAddr) { |
| 337 | state ActorCollection connections(false); |
| 338 | |
| 339 | try { |
| 340 | state Reference<IListener> listener = INetworkConnections::net()->listen(listenAddr); |
| 341 | |
| 342 | loop choose { |
| 343 | when(Reference<IConnection> conn = wait(listener->accept())) { |
| 344 | Reference<BufferedConnection> bc(new BufferedConnection(conn)); |
| 345 | connections.add(extProxyConnection(bc, connectAddr)); |
| 346 | } |
| 347 | when(wait(connections.getResult())) { ASSERT(false); } |
| 348 | } |
| 349 | } catch (Error& e) { |
| 350 | fprintf(stderr, "FdbDocProxy: fatal error: %s\n", e.what()); |
| 351 | g_network->stop(); |
| 352 | throw; |
| 353 | } |
| 354 | } |
| 355 | |
| 356 | THREAD_FUNC networkThread(void* api) { |
| 357 | ((FDB::API*)api)->runNetwork(); |
no test coverage detected