Use static http_parser_settings.

This commit is contained in:
XMRig 2019-03-30 15:27:09 +07:00
parent c9f9e6787c
commit 106e149324
3 changed files with 39 additions and 44 deletions

View file

@ -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;
};
}