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 {
handleUpgrade(const Request & req,const std::shared_ptr<bmcweb::AsyncResp> &,boost::asio::ip::tcp::socket && adaptor)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
handleUpgrade(const Request & req,const std::shared_ptr<bmcweb::AsyncResp> &,boost::asio::ssl::stream<boost::asio::ip::tcp::socket> && adaptor)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