refactor socket props
This commit is contained in:
@@ -46,6 +46,8 @@ private:
|
||||
boost::asio::ip::tcp::socket &sock;
|
||||
};
|
||||
|
||||
void apply_common_socket_properties(boost::asio::ip::tcp::socket &sock);
|
||||
|
||||
[[nodiscard]] auto is_socket_still_alive(boost::asio::ip::tcp::socket &sock)
|
||||
-> bool;
|
||||
|
||||
|
@@ -77,6 +77,12 @@ auto is_socket_still_alive(boost::asio::ip::tcp::socket &sock) -> bool {
|
||||
return false;
|
||||
}
|
||||
|
||||
void apply_common_socket_properties(boost::asio::ip::tcp::socket &sock) {
|
||||
sock.set_option(boost::asio::ip::tcp::no_delay(true));
|
||||
sock.set_option(boost::asio::socket_base::linger(false, 0));
|
||||
sock.set_option(boost::asio::socket_base::keep_alive(true));
|
||||
}
|
||||
|
||||
template <class op_t>
|
||||
void run_with_deadline(boost::asio::io_context &io_ctx,
|
||||
boost::asio::ip::tcp::socket &sock, op_t &&operation,
|
||||
|
@@ -89,9 +89,7 @@ auto packet_client::check_version(std::uint32_t client_version,
|
||||
connect_with_deadline(ctx, cli.socket, resolve_results,
|
||||
std::chrono::milliseconds(cfg_.conn_timeout_ms));
|
||||
|
||||
cli.socket.set_option(boost::asio::ip::tcp::no_delay(true));
|
||||
cli.socket.set_option(boost::asio::socket_base::linger(false, 0));
|
||||
cli.socket.set_option(boost::asio::socket_base::keep_alive(true));
|
||||
comm::apply_common_socket_properties(cli.socket);
|
||||
|
||||
if (not handshake(cli, ctx, min_version)) {
|
||||
return api_error::comm_error;
|
||||
|
@@ -232,9 +232,7 @@ void packet_server::on_accept(std::shared_ptr<connection> conn,
|
||||
return;
|
||||
}
|
||||
|
||||
conn->socket.set_option(boost::asio::ip::tcp::no_delay(true));
|
||||
conn->socket.set_option(boost::asio::socket_base::linger(false, 0));
|
||||
conn->socket.set_option(boost::asio::socket_base::keep_alive(true));
|
||||
comm::apply_common_socket_properties(conn->socket);
|
||||
|
||||
boost::asio::dispatch(conn->socket.get_executor(), [this, conn]() {
|
||||
if (not handshake(conn)) {
|
||||
|
Reference in New Issue
Block a user