Remove extra parameters from HTTP handler signature

These parameters are no longer needed since they were only used
by EventsHandler which was refactored in the other commit.
This commit is contained in:
Johannes Schmidt 2025-06-17 11:14:18 +02:00
parent d26294a58a
commit 096a210e31
36 changed files with 39 additions and 138 deletions

View File

@ -17,11 +17,9 @@ REGISTER_URLHANDLER("/v1/actions", ActionsHandler);
bool ActionsHandler::HandleRequest( bool ActionsHandler::HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -17,11 +17,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -15,11 +15,9 @@ REGISTER_URLHANDLER("/v1/config/files", ConfigFilesHandler);
bool ConfigFilesHandler::HandleRequest( bool ConfigFilesHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -12,11 +12,9 @@ REGISTER_URLHANDLER("/v1/config/packages", ConfigPackagesHandler);
bool ConfigPackagesHandler::HandleRequest( bool ConfigPackagesHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
private: private:

View File

@ -16,11 +16,9 @@ std::atomic<bool> ConfigStagesHandler::m_RunningPackageUpdates (false);
bool ConfigStagesHandler::HandleRequest( bool ConfigStagesHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -16,11 +16,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
private: private:

View File

@ -55,11 +55,9 @@ static void EnsureFrameCleanupTimer()
bool ConsoleHandler::HandleRequest( bool ConsoleHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -24,11 +24,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
static std::vector<String> GetAutocompletionSuggestions(const String& word, ScriptFrame& frame); static std::vector<String> GetAutocompletionSuggestions(const String& word, ScriptFrame& frame);

View File

@ -17,11 +17,9 @@ REGISTER_URLHANDLER("/v1/objects", CreateObjectHandler);
bool CreateObjectHandler::HandleRequest( bool CreateObjectHandler::HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -17,11 +17,9 @@ REGISTER_URLHANDLER("/v1/objects", DeleteObjectHandler);
bool DeleteObjectHandler::HandleRequest( bool DeleteObjectHandler::HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -41,11 +41,9 @@ const String l_ApiQuery ("<API query>");
bool EventsHandler::HandleRequest( bool EventsHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace asio = boost::asio; namespace asio = boost::asio;

View File

@ -16,11 +16,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -48,11 +48,9 @@ void HttpHandler::Register(const Url::Ptr& url, const HttpHandler::Ptr& handler)
void HttpHandler::ProcessRequest( void HttpHandler::ProcessRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
HttpRequest& request, HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
Dictionary::Ptr node = m_UrlTree; Dictionary::Ptr node = m_UrlTree;
@ -106,7 +104,7 @@ void HttpHandler::ProcessRequest(
*/ */
try { try {
for (const HttpHandler::Ptr& handler : handlers) { for (const HttpHandler::Ptr& handler : handlers) {
if (handler->HandleRequest(waitGroup, stream, request, response, yc, server)) { if (handler->HandleRequest(waitGroup, request, response, yc)) {
processed = true; processed = true;
break; break;
} }

View File

@ -30,21 +30,17 @@ public:
virtual bool HandleRequest( virtual bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) = 0; ) = 0;
static void Register(const Url::Ptr& url, const HttpHandler::Ptr& handler); static void Register(const Url::Ptr& url, const HttpHandler::Ptr& handler);
static void ProcessRequest( static void ProcessRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
HttpRequest& request, HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
); );
private: private:

View File

@ -41,8 +41,7 @@ HttpServerConnection::HttpServerConnection(const WaitGroup::Ptr& waitGroup, cons
} }
HttpServerConnection::HttpServerConnection(const WaitGroup::Ptr& waitGroup, const String& identity, bool authenticated, const Shared<AsioTlsStream>::Ptr& stream, boost::asio::io_context& io) HttpServerConnection::HttpServerConnection(const WaitGroup::Ptr& waitGroup, const String& identity, bool authenticated, const Shared<AsioTlsStream>::Ptr& stream, boost::asio::io_context& io)
: m_WaitGroup(waitGroup), m_Stream(stream), m_Seen(Utility::GetTime()), m_CanRead(io, true), m_IoStrand(io), m_ShuttingDown(false), m_HasStartedStreaming(false), : m_WaitGroup(waitGroup), m_Stream(stream), m_Seen(Utility::GetTime()), m_CanRead(io, true), m_IoStrand(io), m_ShuttingDown(false), m_CheckLivenessTimer(io)
m_CheckLivenessTimer(io)
{ {
if (authenticated) { if (authenticated) {
m_ApiUser = ApiUser::GetByClientCN(identity); m_ApiUser = ApiUser::GetByClientCN(identity);
@ -100,29 +99,6 @@ void HttpServerConnection::Disconnect(boost::asio::yield_context yc)
} }
} }
void HttpServerConnection::StartStreaming()
{
namespace asio = boost::asio;
m_HasStartedStreaming = true;
HttpServerConnection::Ptr keepAlive (this);
IoEngine::SpawnCoroutine(m_IoStrand, [this, keepAlive](asio::yield_context yc) {
if (!m_ShuttingDown) {
char buf[128];
asio::mutable_buffer readBuf (buf, 128);
boost::system::error_code ec;
do {
m_Stream->async_read_some(readBuf, yc[ec]);
} while (!ec);
Disconnect(yc);
}
});
}
bool HttpServerConnection::Disconnected() bool HttpServerConnection::Disconnected()
{ {
return m_ShuttingDown; return m_ShuttingDown;
@ -385,11 +361,8 @@ bool EnsureValidBody(
static inline static inline
bool ProcessRequest( bool ProcessRequest(
AsioTlsStream& stream,
HttpRequest& request, HttpRequest& request,
HttpResponse& response, HttpResponse& response,
HttpServerConnection& server,
bool& hasStartedStreaming,
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
std::chrono::steady_clock::duration& cpuBoundWorkTime, std::chrono::steady_clock::duration& cpuBoundWorkTime,
boost::asio::yield_context& yc boost::asio::yield_context& yc
@ -401,7 +374,7 @@ bool ProcessRequest(
CpuBoundWork handlingRequest (yc); CpuBoundWork handlingRequest (yc);
cpuBoundWorkTime = std::chrono::steady_clock::now() - start; cpuBoundWorkTime = std::chrono::steady_clock::now() - start;
HttpHandler::ProcessRequest(waitGroup, stream, request, response, yc, server); HttpHandler::ProcessRequest(waitGroup, request, response, yc);
} catch (const std::exception& ex) { } catch (const std::exception& ex) {
/* This means we can't do anything with the connection anymore, so we can't send /* This means we can't do anything with the connection anymore, so we can't send
* an error response. And since we don't know the state the stream is in, we have to * an error response. And since we don't know the state the stream is in, we have to
@ -508,7 +481,7 @@ void HttpServerConnection::ProcessMessages(boost::asio::yield_context yc)
m_Seen = std::numeric_limits<decltype(m_Seen)>::max(); m_Seen = std::numeric_limits<decltype(m_Seen)>::max();
m_CanRead.Clear(); m_CanRead.Clear();
if (!ProcessRequest(*m_Stream, request, response, *this, m_HasStartedStreaming, m_WaitGroup, cpuBoundWorkTime, yc)) { if (!ProcessRequest(request, response, m_WaitGroup, cpuBoundWorkTime, yc)) {
break; break;
} }

View File

@ -31,7 +31,6 @@ public:
const Shared<AsioTlsStream>::Ptr& stream); const Shared<AsioTlsStream>::Ptr& stream);
void Start(); void Start();
void StartStreaming();
bool Disconnected(); bool Disconnected();
private: private:
@ -43,7 +42,6 @@ private:
String m_PeerAddress; String m_PeerAddress;
boost::asio::io_context::strand m_IoStrand; boost::asio::io_context::strand m_IoStrand;
bool m_ShuttingDown; bool m_ShuttingDown;
bool m_HasStartedStreaming;
boost::asio::deadline_timer m_CheckLivenessTimer; boost::asio::deadline_timer m_CheckLivenessTimer;
HttpServerConnection(const WaitGroup::Ptr& waitGroup, const String& identity, bool authenticated, HttpServerConnection(const WaitGroup::Ptr& waitGroup, const String& identity, bool authenticated,

View File

@ -10,11 +10,9 @@ REGISTER_URLHANDLER("/", InfoHandler);
bool InfoHandler::HandleRequest( bool InfoHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -19,11 +19,9 @@ REGISTER_URLHANDLER("/v1/debug/malloc_info", MallocInfoHandler);
bool MallocInfoHandler::HandleRequest( bool MallocInfoHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream&,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context&, boost::asio::yield_context&
HttpServerConnection&
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -14,11 +14,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -15,11 +15,9 @@ REGISTER_URLHANDLER("/v1/objects", ModifyObjectHandler);
bool ModifyObjectHandler::HandleRequest( bool ModifyObjectHandler::HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -90,11 +90,9 @@ Dictionary::Ptr ObjectQueryHandler::SerializeObjectAttrs(const Object::Ptr& obje
bool ObjectQueryHandler::HandleRequest( bool ObjectQueryHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
private: private:

View File

@ -70,11 +70,9 @@ public:
bool StatusHandler::HandleRequest( bool StatusHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -77,11 +77,9 @@ public:
bool TemplateQueryHandler::HandleRequest( bool TemplateQueryHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -48,11 +48,9 @@ public:
bool TypeQueryHandler::HandleRequest( bool TypeQueryHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };

View File

@ -58,11 +58,9 @@ public:
bool VariableQueryHandler::HandleRequest( bool VariableQueryHandler::HandleRequest(
const WaitGroup::Ptr&, const WaitGroup::Ptr&,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) )
{ {
namespace http = boost::beast::http; namespace http = boost::beast::http;

View File

@ -15,11 +15,9 @@ public:
bool HandleRequest( bool HandleRequest(
const WaitGroup::Ptr& waitGroup, const WaitGroup::Ptr& waitGroup,
AsioTlsStream& stream,
const HttpRequest& request, const HttpRequest& request,
HttpResponse& response, HttpResponse& response,
boost::asio::yield_context& yc, boost::asio::yield_context& yc
HttpServerConnection& server
) override; ) override;
}; };