Merge pull request #3997

1a526ed5 abstract_tcp_server2: restart async accept on error (moneromooo-monero)
This commit is contained in:
Riccardo Spagni 2018-07-03 15:16:04 +02:00
commit 318fb23d7a
No known key found for this signature in database
GPG key ID: 55432DF31CCD4FCD

View file

@ -1030,7 +1030,8 @@ POP_WARNINGS
void boosted_tcp_server<t_protocol_handler>::handle_accept(const boost::system::error_code& e) void boosted_tcp_server<t_protocol_handler>::handle_accept(const boost::system::error_code& e)
{ {
MDEBUG("handle_accept"); MDEBUG("handle_accept");
TRY_ENTRY(); try
{
if (!e) if (!e)
{ {
if (m_connection_type == e_connection_type_RPC) { if (m_connection_type == e_connection_type_RPC) {
@ -1048,11 +1049,25 @@ POP_WARNINGS
conn->start(true, 1 < m_threads_count); conn->start(true, 1 < m_threads_count);
conn->save_dbg_log(); conn->save_dbg_log();
}else return;
{
_erro("Some problems at accept: " << e.message() << ", connections_count = " << m_sock_count);
} }
CATCH_ENTRY_L0("boosted_tcp_server<t_protocol_handler>::handle_accept", void()); else
{
MERROR("Error in boosted_tcp_server<t_protocol_handler>::handle_accept: " << e);
}
}
catch (const std::exception &e)
{
MERROR("Exception in boosted_tcp_server<t_protocol_handler>::handle_accept: " << e.what());
}
// error path, if e or exception
_erro("Some problems at accept: " << e.message() << ", connections_count = " << m_sock_count);
misc_utils::sleep_no_w(100);
new_connection_.reset(new connection<t_protocol_handler>(io_service_, m_config, m_sock_count, m_sock_number, m_pfilter, m_connection_type));
acceptor_.async_accept(new_connection_->socket(),
boost::bind(&boosted_tcp_server<t_protocol_handler>::handle_accept, this,
boost::asio::placeholders::error));
} }
//--------------------------------------------------------------------------------- //---------------------------------------------------------------------------------
template<class t_protocol_handler> template<class t_protocol_handler>