diff options
Diffstat (limited to 'http/routing.h')
-rw-r--r-- | http/routing.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/http/routing.h b/http/routing.h index b2355e9540..758f8dd4d7 100644 --- a/http/routing.h +++ b/http/routing.h @@ -328,9 +328,13 @@ class WebSocketRule : public BaseRule void handleUpgrade(const Request& req, Response&, boost::asio::ip::tcp::socket&& adaptor) override { - new crow::websocket::ConnectionImpl<boost::asio::ip::tcp::socket>( - req, std::move(adaptor), openHandler, messageHandler, closeHandler, - errorHandler); + std::shared_ptr< + crow::websocket::ConnectionImpl<boost::asio::ip::tcp::socket>> + myConnection = std::make_shared< + crow::websocket::ConnectionImpl<boost::asio::ip::tcp::socket>>( + req, std::move(adaptor), openHandler, messageHandler, + closeHandler, errorHandler); + myConnection->start(); } #ifdef BMCWEB_ENABLE_SSL void handleUpgrade(const Request& req, Response&, |