Use static http_parser_settings.
This commit is contained in:
parent
c9f9e6787c
commit
106e149324
3 changed files with 39 additions and 44 deletions
|
@ -29,6 +29,7 @@
|
|||
|
||||
|
||||
#include "3rdparty/http-parser/http_parser.h"
|
||||
#include "base/kernel/interfaces/IHttpListener.h"
|
||||
#include "base/net/http/HttpContext.h"
|
||||
|
||||
|
||||
|
@ -78,6 +79,10 @@ xmrig::HttpContext *xmrig::HttpContext::get(uint64_t id)
|
|||
|
||||
void xmrig::HttpContext::attach(http_parser_settings *settings)
|
||||
{
|
||||
if (settings->on_message_complete != nullptr) {
|
||||
return;
|
||||
}
|
||||
|
||||
settings->on_message_begin = nullptr;
|
||||
settings->on_status = nullptr;
|
||||
settings->on_chunk_header = nullptr;
|
||||
|
@ -109,6 +114,14 @@ void xmrig::HttpContext::attach(http_parser_settings *settings)
|
|||
|
||||
return 0;
|
||||
};
|
||||
|
||||
settings->on_message_complete = [](http_parser *parser) -> int
|
||||
{
|
||||
const HttpContext *ctx = reinterpret_cast<const HttpContext*>(parser->data);
|
||||
ctx->listener->onHttpRequest(*ctx);
|
||||
|
||||
return 0;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue