From b4175d73eac2b313b89d96571d64dee2323e992f Mon Sep 17 00:00:00 2001 From: JoelKatz Date: Thu, 13 Dec 2012 17:15:41 -0800 Subject: [PATCH] Fix the shutdown deadlock and a few other problems. Don't wait for SSL shutdown in the websocketpp strand. --- src/cpp/websocketpp/src/sockets/tls.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/cpp/websocketpp/src/sockets/tls.hpp b/src/cpp/websocketpp/src/sockets/tls.hpp index 1cdbf40c2..c20d8a58e 100644 --- a/src/cpp/websocketpp/src/sockets/tls.hpp +++ b/src/cpp/websocketpp/src/sockets/tls.hpp @@ -51,7 +51,10 @@ public: boost::asio::io_service& get_io_service() { return m_io_service; } - + + static void dummy_handler(const boost::system::error_code&) { + } + // should be private friended? tls_socket::handshake_type get_handshake_type() { if (static_cast< endpoint_type* >(this)->is_server()) { @@ -137,7 +140,7 @@ public: bool shutdown() { boost::system::error_code ignored_ec; - m_socket_ptr->shutdown(ignored_ec); + m_socket_ptr->async_shutdown(dummy_handler); // don't block on SSL shutdown DJS if (ignored_ec) { return false;