Use static http_parser_settings.

This commit is contained in:
XMRig
2019-03-30 15:27:09 +07:00
parent 27cd811890
commit da4dd705f8
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;
};
}