summaryrefslogtreecommitdiff
path: root/http/routing.hpp
diff options
context:
space:
mode:
authorEd Tanous <edtanous@google.com>2023-06-01 17:33:34 +0300
committerEd Tanous <ed@tanous.net>2023-06-01 23:43:11 +0300
commit6fde95fad082fa7d6fc54f2ef8584e06fb116d42 (patch)
tree31865ca598fcb00af96d5d33824cf53ae1df4f36 /http/routing.hpp
parent88ada3bc05ea247b6c8a24db49ebfdd268c17f4d (diff)
downloadbmcweb-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.hpp32
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,