diff options
author | Ed Tanous <edtanous@google.com> | 2023-06-01 17:33:34 +0300 |
---|---|---|
committer | Ed Tanous <ed@tanous.net> | 2023-06-01 23:43:11 +0300 |
commit | 6fde95fad082fa7d6fc54f2ef8584e06fb116d42 (patch) | |
tree | 31865ca598fcb00af96d5d33824cf53ae1df4f36 /http/routing.hpp | |
parent | 88ada3bc05ea247b6c8a24db49ebfdd268c17f4d (diff) | |
download | bmcweb-6fde95fad082fa7d6fc54f2ef8584e06fb116d42.tar.xz |
Server-sent-event fixes
This makes several changes to server-sent events to allow it to merge
to master. The routing system has been removed in leiu of using
content-type eventstream detection. Timers have been added to the
sse connections, and sse connections now rely on async_wait, rather
than a full read.
Tested: WIP
Signed-off-by: Ed Tanous <edtanous@google.com>
Change-Id: Id0ff0ebc2b3a795b3dba008e440556a9fdd882c2
Diffstat (limited to 'http/routing.hpp')
-rw-r--r-- | http/routing.hpp | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/http/routing.hpp b/http/routing.hpp index ead3af9eca..ac1c310ae2 100644 --- a/http/routing.hpp +++ b/http/routing.hpp @@ -391,7 +391,7 @@ class SseSocketRule : public BaseRule } #ifndef BMCWEB_ENABLE_SSL - void handleUpgrade(const Request& req, + void handleUpgrade(const Request& /*req*/, const std::shared_ptr<bmcweb::AsyncResp>& /*asyncResp*/, boost::asio::ip::tcp::socket&& adaptor) override { @@ -399,11 +399,11 @@ class SseSocketRule : public BaseRule crow::sse_socket::ConnectionImpl<boost::asio::ip::tcp::socket>> myConnection = std::make_shared< crow::sse_socket::ConnectionImpl<boost::asio::ip::tcp::socket>>( - req, std::move(adaptor), openHandler, closeHandler); + std::move(adaptor), openHandler, closeHandler); myConnection->start(); } #else - void handleUpgrade(const Request& req, + void handleUpgrade(const Request& /*req*/, const std::shared_ptr<bmcweb::AsyncResp>& /*asyncResp*/, boost::beast::ssl_stream<boost::asio::ip::tcp::socket>&& adaptor) override @@ -412,7 +412,7 @@ class SseSocketRule : public BaseRule boost::beast::ssl_stream<boost::asio::ip::tcp::socket>>> myConnection = std::make_shared<crow::sse_socket::ConnectionImpl< boost::beast::ssl_stream<boost::asio::ip::tcp::socket>>>( - req, std::move(adaptor), openHandler, closeHandler); + std::move(adaptor), openHandler, closeHandler); myConnection->start(); } #endif @@ -432,12 +432,8 @@ class SseSocketRule : public BaseRule } private: - std::function<void(std::shared_ptr<crow::sse_socket::Connection>&, - const crow::Request&, - const std::shared_ptr<bmcweb::AsyncResp>&)> - openHandler; - std::function<void(std::shared_ptr<crow::sse_socket::Connection>&)> - closeHandler; + std::function<void(crow::sse_socket::Connection&)> openHandler; + std::function<void(crow::sse_socket::Connection&)> closeHandler; }; template <typename T> @@ -461,13 +457,6 @@ struct RuleParameterTraits return *p; } - self_t& name(std::string_view name) noexcept - { - self_t* self = static_cast<self_t*>(this); - self->nameStr = name; - return *self; - } - self_t& methods(boost::beast::http::verb method) { self_t* self = static_cast<self_t*>(this); @@ -1184,15 +1173,6 @@ class Router return true; } - static bool isSseRoute(Request& req) - { - return std::any_of(sse_socket::sseRoutes.begin(), - sse_socket::sseRoutes.end(), - [&req](const char* sseRoute) { - return (req.url().encoded_path() == sseRoute); - }); - } - static bool isUserPrivileged(Request& req, const std::shared_ptr<bmcweb::AsyncResp>& asyncResp, |