Fix ssl::stream bug that may cause spurious 'short read' errors.
diff --git a/asio/include/asio/ssl/detail/io.hpp b/asio/include/asio/ssl/detail/io.hpp
index 0916bea..3dfe964 100644
--- a/asio/include/asio/ssl/detail/io.hpp
+++ b/asio/include/asio/ssl/detail/io.hpp
@@ -220,7 +220,9 @@
}
default:
- if (bytes_transferred != ~std::size_t(0) && !ec_)
+ if (bytes_transferred == ~std::size_t(0))
+ bytes_transferred = 0; // Timer cancellation, no data transferred.
+ else if (!ec_)
ec_ = ec;
switch (want_)