From cd9910a25468243d2aa1cc13ee3c77ec8c9bad61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Carlos=20Ferreira=20Gonz=C3=A1lez?= Date: Fri, 8 Mar 2024 09:39:54 +0100 Subject: [PATCH] Protect asio exception hotfix (#4527) * Refs #20599: Handle error code before function call Signed-off-by: cferreiragonz * Apply suggestion Co-authored-by: Miguel Company --------- Signed-off-by: cferreiragonz Co-authored-by: Miguel Company (cherry picked from commit 08193d5f7eb4dcf3de8ecee3725f57bee28d35cd) # Conflicts: # src/cpp/rtps/transport/TCPTransportInterface.cpp --- .../rtps/transport/TCPTransportInterface.cpp | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/src/cpp/rtps/transport/TCPTransportInterface.cpp b/src/cpp/rtps/transport/TCPTransportInterface.cpp index c5f7ceccc80..8db30cf1abb 100644 --- a/src/cpp/rtps/transport/TCPTransportInterface.cpp +++ b/src/cpp/rtps/transport/TCPTransportInterface.cpp @@ -224,6 +224,43 @@ void TCPTransportInterface::clean() } } +<<<<<<< HEAD +======= +Locator TCPTransportInterface::remote_endpoint_to_locator( + const std::shared_ptr& channel) const +{ + Locator locator; + asio::error_code ec; + auto endpoint = channel->remote_endpoint(ec); + if (ec) + { + LOCATOR_INVALID(locator); + } + else + { + endpoint_to_locator(endpoint, locator); + } + return locator; +} + +Locator TCPTransportInterface::local_endpoint_to_locator( + const std::shared_ptr& channel) const +{ + Locator locator; + asio::error_code ec; + auto endpoint = channel->local_endpoint(ec); + if (ec) + { + LOCATOR_INVALID(locator); + } + else + { + endpoint_to_locator(endpoint, locator); + } + return locator; +} + +>>>>>>> 08193d5f7 (Protect asio exception hotfix (#4527)) void TCPTransportInterface::bind_socket( std::shared_ptr& channel) {