@@ -495,6 +495,7 @@ class Parser : public AsyncWrap, public StreamListener {
495
495
496
496
static void Initialize (const FunctionCallbackInfo<Value>& args) {
497
497
Environment* env = Environment::GetCurrent (args);
498
+ bool lenient = args[2 ]->IsTrue ();
498
499
499
500
CHECK (args[0 ]->IsInt32 ());
500
501
CHECK (args[1 ]->IsObject ());
@@ -515,7 +516,7 @@ class Parser : public AsyncWrap, public StreamListener {
515
516
516
517
parser->set_provider_type (provider);
517
518
parser->AsyncReset (args[1 ].As <Object>());
518
- parser->Init (type);
519
+ parser->Init (type, lenient );
519
520
}
520
521
521
522
template <bool should_pause>
@@ -799,12 +800,14 @@ class Parser : public AsyncWrap, public StreamListener {
799
800
}
800
801
801
802
802
- void Init (parser_type_t type) {
803
+ void Init (parser_type_t type, bool lenient ) {
803
804
#ifdef NODE_EXPERIMENTAL_HTTP
804
805
llhttp_init (&parser_, type, &settings);
806
+ llhttp_set_lenient (&parser_, lenient);
805
807
header_nread_ = 0 ;
806
808
#else /* !NODE_EXPERIMENTAL_HTTP */
807
809
http_parser_init (&parser_, type);
810
+ parser_.lenient_http_headers = lenient;
808
811
#endif /* NODE_EXPERIMENTAL_HTTP */
809
812
url_.Reset ();
810
813
status_message_.Reset ();
0 commit comments