Merge pull request #9956

9f3d96e Add check for exception in tcp accept handler (Lee *!* Clagett)
This commit is contained in:
tobtoht 2025-07-07 19:38:55 +00:00
commit 3176fbd7fb
No known key found for this signature in database
GPG key ID: E45B10DD027D2472

View file

@ -1540,6 +1540,7 @@ namespace net_utils
accept_function_pointer = &boosted_tcp_server<t_protocol_handler>::handle_accept_ipv6; accept_function_pointer = &boosted_tcp_server<t_protocol_handler>::handle_accept_ipv6;
} }
bool accept_started = false;
try try
{ {
if (!e) if (!e)
@ -1560,6 +1561,7 @@ namespace net_utils
current_acceptor->async_accept((*current_new_connection)->socket(), current_acceptor->async_accept((*current_new_connection)->socket(),
boost::bind(accept_function_pointer, this, boost::bind(accept_function_pointer, this,
boost::asio::placeholders::error)); boost::asio::placeholders::error));
accept_started = true;
boost::asio::socket_base::keep_alive opt(true); boost::asio::socket_base::keep_alive opt(true);
conn->socket().set_option(opt); conn->socket().set_option(opt);
@ -1585,6 +1587,8 @@ namespace net_utils
catch (const std::exception &e) catch (const std::exception &e)
{ {
MERROR("Exception in boosted_tcp_server<t_protocol_handler>::handle_accept: " << e.what()); MERROR("Exception in boosted_tcp_server<t_protocol_handler>::handle_accept: " << e.what());
if (accept_started)
return;
} }
// error path, if e or exception // error path, if e or exception