diff --git a/shared/src/Connection.cpp b/shared/src/Connection.cpp index 7f80b5d..4378a66 100644 --- a/shared/src/Connection.cpp +++ b/shared/src/Connection.cpp @@ -32,17 +32,18 @@ namespace pine if (!bufferSize) co_return buffer; - try - { - size_t n = socket.receive(asio::buffer(buffer)); - buffer.resize(n); - } - catch (std::exception& e) + asio::error_code ec; + auto flags = asio::socket_base::message_peek; + size_t n = socket.receive(asio::buffer(buffer), flags, ec); + + if (ec && ec != asio::error::connection_reset) { - std::cout << "Failed to receive message: " << e.what() << std::endl; + std::cout << "Failed to receive message: " << std::dec << ec.value() << " -> " << ec.message() << std::endl; co_return buffer; } + buffer.resize(n); + co_return buffer; }