1 // SPDX-License-Identifier: Apache-2.0 2 // SPDX-FileCopyrightText: Copyright OpenBMC Authors 3 4 #include "websocketrule.hpp" 5 6 #include "async_resp.hpp" 7 #include "http_request.hpp" 8 #include "logging.hpp" 9 #include "websocket_impl.hpp" 10 11 #include <boost/asio/ip/tcp.hpp> 12 #include <boost/asio/ssl/stream.hpp> 13 14 #include <memory> 15 #include <utility> 16 17 namespace crow 18 { 19 void WebSocketRule::handleUpgrade( 20 const Request& req, const std::shared_ptr<bmcweb::AsyncResp>& /*asyncResp*/, 21 boost::asio::ip::tcp::socket&& adaptor) 22 { 23 BMCWEB_LOG_DEBUG("Websocket handles upgrade"); 24 std::shared_ptr< 25 crow::websocket::ConnectionImpl<boost::asio::ip::tcp::socket>> 26 myConnection = std::make_shared< 27 crow::websocket::ConnectionImpl<boost::asio::ip::tcp::socket>>( 28 req.url(), req.session, std::move(adaptor), openHandler, 29 messageHandler, messageExHandler, closeHandler, errorHandler); 30 myConnection->start(req); 31 } 32 33 void WebSocketRule::handleUpgrade( 34 const Request& req, const std::shared_ptr<bmcweb::AsyncResp>& /*asyncResp*/, 35 boost::asio::ssl::stream<boost::asio::ip::tcp::socket>&& adaptor) 36 { 37 BMCWEB_LOG_DEBUG("Websocket handles upgrade"); 38 std::shared_ptr<crow::websocket::ConnectionImpl< 39 boost::asio::ssl::stream<boost::asio::ip::tcp::socket>>> 40 myConnection = std::make_shared<crow::websocket::ConnectionImpl< 41 boost::asio::ssl::stream<boost::asio::ip::tcp::socket>>>( 42 req.url(), req.session, std::move(adaptor), openHandler, 43 messageHandler, messageExHandler, closeHandler, errorHandler); 44 myConnection->start(req); 45 } 46 } // namespace crow 47