1 /*! 2 * @file 3 * @brief A list of factories for creation of connection_handlers. 4 */ 5 6 #pragma once 7 8 #include <arataga/acl_handler/connection_handler_ifaces.hpp> 9 #include <arataga/acl_handler/first_chunk.hpp> 10 11 namespace arataga::acl_handler 12 { 13 14 [[nodiscard]] 15 connection_handler_shptr_t 16 make_protocol_detection_handler( 17 handler_context_holder_t ctx, 18 handler_context_t::connection_id_t id, 19 asio::ip::tcp::socket connection ); 20 21 [[nodiscard]] 22 connection_handler_shptr_t 23 make_socks5_auth_method_detection_handler( 24 handler_context_holder_t ctx, 25 handler_context_t::connection_id_t id, 26 asio::ip::tcp::socket connection, 27 first_chunk_for_next_handler_t first_chunk, 28 std::chrono::steady_clock::time_point created_at ); 29 30 [[nodiscard]] 31 connection_handler_shptr_t 32 make_http_handler( 33 handler_context_holder_t ctx, 34 handler_context_t::connection_id_t id, 35 asio::ip::tcp::socket connection, 36 first_chunk_for_next_handler_t first_chunk, 37 std::chrono::steady_clock::time_point created_at ); 38 39 [[nodiscard]] 40 connection_handler_shptr_t 41 make_data_transfer_handler( 42 handler_context_holder_t ctx, 43 handler_context_t::connection_id_t id, 44 asio::ip::tcp::socket in_connection, 45 first_chunk_for_next_handler_t first_chunk, 46 asio::ip::tcp::socket out_connection, 47 traffic_limiter_unique_ptr_t traffic_limiter ); 48 49 } /* arataga::acl_handler */ 50 51