diff --git a/websocketpp/impl/connection_impl.hpp b/websocketpp/impl/connection_impl.hpp index 12d740e88c..1b0b0f02d4 100644 --- a/websocketpp/impl/connection_impl.hpp +++ b/websocketpp/impl/connection_impl.hpp @@ -744,8 +744,8 @@ void connection::handle_read_frame(const lib::error_code& ec, return; } } - if (ec.value() == 335544539 /*TLS short read */) { - m_alog.write(log::alevel::devel,"got TLS short read, ignore for the moment"); + if (ec == transport::error::tls_short_read) { + m_elog.write(log::elevel::rerror,"got TLS short read, ignore for the moment"); return; } diff --git a/websocketpp/transport/asio/connection.hpp b/websocketpp/transport/asio/connection.hpp index 7e89f83511..6a48ba860b 100644 --- a/websocketpp/transport/asio/connection.hpp +++ b/websocketpp/transport/asio/connection.hpp @@ -449,13 +449,16 @@ protected: if (ec == boost::asio::error::eof) { handler(make_error_code(transport::error::eof), bytes_transferred); + } else if (ec.value() == 335544539) { + handler(make_error_code(transport::error::tls_short_read), + bytes_transferred); } else { // other error that we cannot translate into a WebSocket++ // transport error. Use pass through and print an info warning // with the original error. std::stringstream s; - s << "asio async_read_at_least error::pass_through" - << ", Original Error: " << ec << " (" << ec.message() << ")"; + s << "asio async_read_at_least error: " + << ec << " (" << ec.message() << ")"; m_elog.write(log::elevel::info,s.str()); handler(make_error_code(transport::error::pass_through), bytes_transferred); diff --git a/websocketpp/transport/asio/endpoint.hpp b/websocketpp/transport/asio/endpoint.hpp index 1c2fd0a1d0..709754580f 100644 --- a/websocketpp/transport/asio/endpoint.hpp +++ b/websocketpp/transport/asio/endpoint.hpp @@ -308,8 +308,7 @@ public: h(make_error_code(transport::error::operation_aborted)); } else if (ec) { std::stringstream s; - s << "asio async_wait error::pass_through" - << "Original Error: " << ec << " (" << ec.message() << ")"; + s << "asio async_wait error: " << ec << " (" << ec.message() << ")"; m_elog->write(log::elevel::devel,s.str()); h(make_error_code(transport::error::pass_through)); } else { @@ -418,8 +417,8 @@ protected: //con->terminate(); // TODO: Better translation of errors at this point std::stringstream s; - s << "asio async_resolve error::pass_through: " - << "Original Error: " << ec << " (" << ec.message() << ")"; + s << "asio async_resolve error:" + << ec << " (" << ec.message() << ")"; m_elog->write(log::elevel::info,s.str()); callback(tcon->get_handle(),make_error_code(error::pass_through)); return; @@ -460,8 +459,8 @@ protected: //con->terminate(); // TODO: Better translation of errors at this point std::stringstream s; - s << "asio async_connect error::pass_through: " - << "Original Error: " << ec << " (" << ec.message() << ")"; + s << "asio async_connect error: " + << ec << " (" << ec.message() << ")"; m_elog->write(log::elevel::info,s.str()); callback(tcon->get_handle(),make_error_code(error::pass_through)); return; diff --git a/websocketpp/transport/base/connection.hpp b/websocketpp/transport/base/connection.hpp index 9a508aca70..d3ccaafb69 100644 --- a/websocketpp/transport/base/connection.hpp +++ b/websocketpp/transport/base/connection.hpp @@ -104,7 +104,10 @@ enum value { operation_not_supported, /// End of file - eof + eof, + + /// TLS short read + tls_short_read }; class category : public lib::error_category { @@ -129,6 +132,8 @@ class category : public lib::error_category { return "The operation is not supported by this transport"; case eof: return "End of File"; + case tls_short_read: + return "TLS Short Read"; default: return "Unknown"; }