http-parser replaced to llhttp.

This commit is contained in:
XMRig
2021-03-06 01:46:49 +07:00
parent 57e089b024
commit 4d9a8773de
37 changed files with 16281 additions and 3513 deletions

View File

@@ -22,8 +22,8 @@
#define XMRIG_HTTPCONTEXT_H
using http_parser = struct http_parser;
using http_parser_settings = struct http_parser_settings;
using llhttp_settings_t = struct llhttp_settings_s;
using llhttp_t = struct llhttp__internal_s;
using uv_connect_t = struct uv_connect_s;
using uv_handle_t = struct uv_handle_s;
using uv_stream_t = struct uv_stream_s;
@@ -76,15 +76,15 @@ protected:
private:
inline IHttpListener *httpListener() const { return m_listener.expired() ? nullptr : m_listener.lock().get(); }
static int onHeaderField(http_parser *parser, const char *at, size_t length);
static int onHeaderValue(http_parser *parser, const char *at, size_t length);
static void attach(http_parser_settings *settings);
static int onHeaderField(llhttp_t *parser, const char *at, size_t length);
static int onHeaderValue(llhttp_t *parser, const char *at, size_t length);
static void attach(llhttp_settings_t *settings);
void setHeader();
bool m_wasHeaderValue = false;
const uint64_t m_timestamp;
http_parser *m_parser;
llhttp_t *m_parser;
std::string m_lastHeaderField;
std::string m_lastHeaderValue;
std::weak_ptr<IHttpListener> m_listener;