http: switch default parser to llhttp · nodejs/node@2cb8f24 (original) (raw)
1
1
`#include "inspector_socket.h"
`
2
2
``
3
``
`-
#ifdef NODE_EXPERIMENTAL_HTTP_DEFAULT
`
4
3
`#define NODE_EXPERIMENTAL_HTTP
`
5
``
`-
#endif
`
6
4
`#include "http_parser_adaptor.h"
`
7
5
``
8
6
`#include "util-inl.h"
`
`@@ -437,13 +435,8 @@ class HttpHandler : public ProtocolHandler {
`
437
435
`explicit HttpHandler(InspectorSocket* inspector, TcpHolder::Pointer tcp)
`
438
436
` : ProtocolHandler(inspector, std::move(tcp)),
`
439
437
` parsing_value_(false) {
`
440
``
`-
#ifdef NODE_EXPERIMENTAL_HTTP_DEFAULT
`
441
438
`llhttp_init(&parser_, HTTP_REQUEST, &parser_settings);
`
442
439
`llhttp_settings_init(&parser_settings);
`
443
``
`-
#else /* !NODE_EXPERIMENTAL_HTTP_DEFAULT */
`
444
``
`-
http_parser_init(&parser_, HTTP_REQUEST);
`
445
``
`-
http_parser_settings_init(&parser_settings);
`
446
``
`-
#endif /* NODE_EXPERIMENTAL_HTTP_DEFAULT */
`
447
440
` parser_settings.on_header_field = OnHeaderField;
`
448
441
` parser_settings.on_header_value = OnHeaderValue;
`
449
442
` parser_settings.on_message_complete = OnMessageComplete;
`
`@@ -488,17 +481,12 @@ class HttpHandler : public ProtocolHandler {
`
488
481
``
489
482
`void OnData(std::vector* data) override {
`
490
483
`parser_errno_t err;
`
491
``
`-
#ifdef NODE_EXPERIMENTAL_HTTP_DEFAULT
`
492
484
` err = llhttp_execute(&parser_, data->data(), data->size());
`
493
485
``
494
486
`if (err == HPE_PAUSED_UPGRADE) {
`
495
487
` err = HPE_OK;
`
496
488
`llhttp_resume_after_upgrade(&parser_);
`
497
489
` }
`
498
``
`-
#else /* !NODE_EXPERIMENTAL_HTTP_DEFAULT */
`
499
``
`-
http_parser_execute(&parser_, &parser_settings, data->data(), data->size());
`
500
``
`-
err = HTTP_PARSER_ERRNO(&parser_);
`
501
``
`-
#endif /* NODE_EXPERIMENTAL_HTTP_DEFAULT */
`
502
490
` data->clear();
`
503
491
`if (err != HPE_OK) {
`
504
492
`CancelHandshake();
`