| 45 | } |
| 46 | |
| 47 | static Result createSocketPair(AsyncEventLoop& eventLoop, SocketDescriptor& sender, SocketDescriptor& receiver) |
| 48 | { |
| 49 | SocketDescriptor serverSocket; |
| 50 | SocketIPAddress address; |
| 51 | SC_TRY(createServer(eventLoop, serverSocket, address)); |
| 52 | auto closeServer = MakeDeferred([&serverSocket] { (void)serverSocket.close(); }); |
| 53 | |
| 54 | SocketDescriptor client; |
| 55 | SC_TRY(client.create(address.getAddressFamily())); |
| 56 | SC_TRY(SocketClient(client).connect("127.0.0.1", address.getPort())); |
| 57 | |
| 58 | SocketDescriptor accepted; |
| 59 | SC_TRY(SocketServer(serverSocket).accept(address.getAddressFamily(), accepted)); |
| 60 | SC_TRY(client.setBlocking(false)); |
| 61 | SC_TRY(accepted.setBlocking(false)); |
| 62 | SC_TRY(eventLoop.associateExternallyCreatedSocket(client)); |
| 63 | SC_TRY(eventLoop.associateExternallyCreatedSocket(accepted)); |
| 64 | |
| 65 | SC_TRY(sender.assign(move(accepted))); |
| 66 | SC_TRY(receiver.assign(move(client))); |
| 67 | return Result(true); |
| 68 | } |
| 69 | |
| 70 | static AwaitTask copyThenSend(AwaitEventLoop& await, ThreadPool& threadPool, StringSpan sourcePath, StringSpan copyPath, |
| 71 | SocketDescriptor& sender, SocketDescriptor& receiver, Span<char> receiveBuffer, |
no test coverage detected