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_)