diff options
| author | j-berman <justinberman@protonmail.com> | 2026-04-21 12:00:56 -0700 |
|---|---|---|
| committer | j-berman <justinberman@protonmail.com> | 2026-04-21 12:01:48 -0700 |
| commit | 14e333217e968416a521568ed2ef4868bb162b26 (patch) | |
| tree | a9a79cbe67fe4788541825e7d38e05ed05dcc84b /contrib | |
| parent | 8b6be66bef8cce6e074074b7329be9509b93dbb8 (diff) | |
| download | monzero-core-14e333217e968416a521568ed2ef4868bb162b26.tar.gz monzero-core-14e333217e968416a521568ed2ef4868bb162b26.tar.xz monzero-core-14e333217e968416a521568ed2ef4868bb162b26.zip | |
connection: try-catch handles
Diffstat (limited to 'contrib')
| -rw-r--r-- | contrib/epee/include/misc_log_ex.h | 11 | ||||
| -rw-r--r-- | contrib/epee/include/net/abstract_tcp_server2.inl | 7 |
2 files changed, 17 insertions, 1 deletions
diff --git a/contrib/epee/include/misc_log_ex.h b/contrib/epee/include/misc_log_ex.h index 701f8f102..7350d84f4 100644 --- a/contrib/epee/include/misc_log_ex.h +++ b/contrib/epee/include/misc_log_ex.h @@ -172,6 +172,17 @@ namespace debug return return_val; \ } +#define CATCH_ENTRY_SWALLOW_EX(location) } \ + catch(const std::exception& ex) \ +{ \ + (void)(ex); \ + LOG_ERROR("Exception at [" << location << "], what=" << ex.what()); \ +}\ + catch(...)\ +{\ + LOG_ERROR("Exception at [" << location << "], generic exception \"...\"");\ +} + #define CATCH_ENTRY_L0(lacation, return_val) CATCH_ENTRY(lacation, return_val) #define CATCH_ENTRY_L1(lacation, return_val) CATCH_ENTRY(lacation, return_val) #define CATCH_ENTRY_L2(lacation, return_val) CATCH_ENTRY(lacation, return_val) diff --git a/contrib/epee/include/net/abstract_tcp_server2.inl b/contrib/epee/include/net/abstract_tcp_server2.inl index 60cc1b55f..a419fe4e7 100644 --- a/contrib/epee/include/net/abstract_tcp_server2.inl +++ b/contrib/epee/include/net/abstract_tcp_server2.inl @@ -423,10 +423,13 @@ namespace net_utils boost::asio::post( connection_basic::strand_, [this, self, bytes_transferred]{ - bool success = m_handler.handle_recv( + bool success = false; + TRY_ENTRY(); + success = m_handler.handle_recv( reinterpret_cast<char *>(m_state.data.read.buffer.data()), bytes_transferred ); + CATCH_ENTRY_SWALLOW_EX("m_handler.handle_recv"); std::lock_guard<std::mutex> guard(m_state.lock); const bool error_status = m_state.status == status_t::INTERRUPTED || m_state.status == status_t::TERMINATING @@ -1186,7 +1189,9 @@ namespace net_utils auto self = connection<T>::shared_from_this(); ++m_state.protocol.wait_callback; boost::asio::post(connection_basic::strand_, [this, self]{ + TRY_ENTRY(); m_handler.handle_qued_callback(); + CATCH_ENTRY_SWALLOW_EX("m_handler.handle_qued_callback"); std::lock_guard<std::mutex> guard(m_state.lock); --m_state.protocol.wait_callback; if (m_state.status == status_t::INTERRUPTED) |
