From 272bc39def13d7ae2d99e3ee0ae333cf7ae9e237 Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sat, 27 Sep 2025 11:24:24 -0500 Subject: [PATCH] refactor socket props --- repertory/librepertory/include/comm/packet/common.hpp | 2 ++ repertory/librepertory/src/comm/packet/common.cpp | 6 ++++++ repertory/librepertory/src/comm/packet/packet_client.cpp | 4 +--- repertory/librepertory/src/comm/packet/packet_server.cpp | 4 +--- 4 files changed, 10 insertions(+), 6 deletions(-) diff --git a/repertory/librepertory/include/comm/packet/common.hpp b/repertory/librepertory/include/comm/packet/common.hpp index 06f4b5d2..a0507969 100644 --- a/repertory/librepertory/include/comm/packet/common.hpp +++ b/repertory/librepertory/include/comm/packet/common.hpp @@ -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; diff --git a/repertory/librepertory/src/comm/packet/common.cpp b/repertory/librepertory/src/comm/packet/common.cpp index 1a4263b7..630a8d15 100644 --- a/repertory/librepertory/src/comm/packet/common.cpp +++ b/repertory/librepertory/src/comm/packet/common.cpp @@ -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 void run_with_deadline(boost::asio::io_context &io_ctx, boost::asio::ip::tcp::socket &sock, op_t &&operation, diff --git a/repertory/librepertory/src/comm/packet/packet_client.cpp b/repertory/librepertory/src/comm/packet/packet_client.cpp index aecd9a3c..ac37ac27 100644 --- a/repertory/librepertory/src/comm/packet/packet_client.cpp +++ b/repertory/librepertory/src/comm/packet/packet_client.cpp @@ -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; diff --git a/repertory/librepertory/src/comm/packet/packet_server.cpp b/repertory/librepertory/src/comm/packet/packet_server.cpp index 5ff79102..60e5e16a 100644 --- a/repertory/librepertory/src/comm/packet/packet_server.cpp +++ b/repertory/librepertory/src/comm/packet/packet_server.cpp @@ -232,9 +232,7 @@ void packet_server::on_accept(std::shared_ptr 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)) {