From 6d47b0beec291bbc6a1fd3842a77ee2ab86cdb09 Mon Sep 17 00:00:00 2001 From: Michal Sedlak Date: Fri, 29 Aug 2025 15:14:16 +0200 Subject: [PATCH 1/2] Forwarder: catch exception if advance_transfers fails --- src/plugins/output/forwarder/src/Host.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/plugins/output/forwarder/src/Host.cpp b/src/plugins/output/forwarder/src/Host.cpp index a44a5fa4..6b1ecb3a 100644 --- a/src/plugins/output/forwarder/src/Host.cpp +++ b/src/plugins/output/forwarder/src/Host.cpp @@ -148,7 +148,11 @@ Host::advance_transfers() for (auto &p : m_session_to_connection) { Connection &connection = *p.second.get(); if (connection.check_connected()) { - connection.advance_transfers(); + try { + connection.advance_transfers(); + } catch (const ConnectionError &) { + // Ignore... + } } } } From af1b5529d8eb1b0a1e927880186f0fb7764b99f8 Mon Sep 17 00:00:00 2001 From: Michal Sedlak Date: Fri, 29 Aug 2025 15:14:54 +0200 Subject: [PATCH 2/2] Forwarder: make Connection base of std::exception --- src/plugins/output/forwarder/src/Connection.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/plugins/output/forwarder/src/Connection.h b/src/plugins/output/forwarder/src/Connection.h index d137b5c4..ebe2f527 100644 --- a/src/plugins/output/forwarder/src/Connection.h +++ b/src/plugins/output/forwarder/src/Connection.h @@ -45,6 +45,7 @@ #include #include #include +#include #include @@ -55,7 +56,7 @@ class Connection; /// An error to be thrown on connection errors -class ConnectionError { +class ConnectionError : std::exception { public: ConnectionError(std::string message) : m_message(message) {} @@ -66,7 +67,7 @@ class ConnectionError { ConnectionError with_connection(std::shared_ptr &connection) const { return ConnectionError(m_message, connection); } - const char *what() const { return m_message.c_str(); } + const char *what() const noexcept { return m_message.c_str(); } std::shared_ptr *connection() const { return m_connection; }