| 61 | } |
| 62 | |
| 63 | awaitable<void> proxy(tcp::socket client, tcp::endpoint target) |
| 64 | { |
| 65 | constexpr std::size_t number_of_tokens = 100; |
| 66 | constexpr size_t bytes_per_token = 20 * 1024; |
| 67 | constexpr steady_timer::duration token_interval = 100ms; |
| 68 | |
| 69 | auto ex = client.get_executor(); |
| 70 | tcp::socket server(ex); |
| 71 | token_channel client_tokens(ex, number_of_tokens); |
| 72 | token_channel server_tokens(ex, number_of_tokens); |
| 73 | |
| 74 | co_await server.async_connect(target); |
| 75 | co_await ( |
| 76 | produce_tokens(bytes_per_token, token_interval, client_tokens) && |
| 77 | transfer(client, server, client_tokens) && |
| 78 | produce_tokens(bytes_per_token, token_interval, server_tokens) && |
| 79 | transfer(server, client, server_tokens) |
| 80 | ); |
| 81 | } |
| 82 | |
| 83 | awaitable<void> listen(tcp::acceptor& acceptor, tcp::endpoint target) |
| 84 | { |
no test coverage detected