// SPDX-License-Identifier: Apache-2.0 // SPDX-FileCopyrightText: Copyright OpenBMC Authors #include "sserule.hpp" #include "async_resp.hpp" #include "baserule.hpp" #include "http_request.hpp" #include "http_response.hpp" #include "logging.hpp" #include "server_sent_event_impl.hpp" #include #include #include #include #include #include #include namespace crow { SseSocketRule::SseSocketRule(const std::string& ruleIn) : BaseRule(ruleIn) { isUpgrade = true; // Clear GET handler methodsBitfield = 0; } void SseSocketRule::validate() {} void SseSocketRule::handle(const Request& /*req*/, const std::shared_ptr& asyncResp, const std::vector& /*params*/) { BMCWEB_LOG_ERROR( "Handle called on websocket rule. This should never happen"); asyncResp->res.result(boost::beast::http::status::internal_server_error); } void SseSocketRule::handleUpgrade( const Request& req, const std::shared_ptr& /*asyncResp*/, boost::asio::ip::tcp::socket&& adaptor) { std::shared_ptr< crow::sse_socket::ConnectionImpl> myConnection = std::make_shared< crow::sse_socket::ConnectionImpl>( std::move(adaptor), openHandler, closeHandler); myConnection->start(req); } void SseSocketRule::handleUpgrade( const Request& req, const std::shared_ptr& /*asyncResp*/, boost::asio::ssl::stream&& adaptor) { std::shared_ptr>> myConnection = std::make_shared>>( std::move(adaptor), openHandler, closeHandler); myConnection->start(req); } } // namespace crow