@@ -501,6 +501,7 @@ class Parser : public AsyncWrap, public StreamListener {
501
501
502
502
static void Initialize (const FunctionCallbackInfo<Value>& args) {
503
503
Environment* env = Environment::GetCurrent (args);
504
+ bool lenient = args[2 ]->IsTrue ();
504
505
505
506
CHECK (args[0 ]->IsInt32 ());
506
507
CHECK (args[1 ]->IsObject ());
@@ -521,7 +522,7 @@ class Parser : public AsyncWrap, public StreamListener {
521
522
522
523
parser->set_provider_type (provider);
523
524
parser->AsyncReset (args[1 ].As <Object>());
524
- parser->Init (type);
525
+ parser->Init (type, lenient );
525
526
}
526
527
527
528
template <bool should_pause>
@@ -805,12 +806,14 @@ class Parser : public AsyncWrap, public StreamListener {
805
806
}
806
807
807
808
808
- void Init (parser_type_t type) {
809
+ void Init (parser_type_t type, bool lenient ) {
809
810
#ifdef NODE_EXPERIMENTAL_HTTP
810
811
llhttp_init (&parser_, type, &settings);
812
+ llhttp_set_lenient (&parser_, lenient);
811
813
header_nread_ = 0 ;
812
814
#else /* !NODE_EXPERIMENTAL_HTTP */
813
815
http_parser_init (&parser_, type);
816
+ parser_.lenient_http_headers = lenient;
814
817
#endif /* NODE_EXPERIMENTAL_HTTP */
815
818
url_.Reset ();
816
819
status_message_.Reset ();
0 commit comments