@@ -89,7 +89,7 @@ void AsyncWebServerRequest::_onData(void* buf, size_t len) {
8989 // Check for null characters in header
9090 if (!str[i]) {
9191 _parseState = PARSE_REQ_FAIL;
92- _client->close ( true );
92+ _client->abort ( );
9393 return ;
9494 }
9595 if (str[i] == ' \n ' ) {
@@ -160,6 +160,8 @@ void AsyncWebServerRequest::_onData(void* buf, size_t len) {
160160 if (!_sent) {
161161 if (!_response)
162162 send (501 , T_text_plain, " Handler did not handle the request" );
163+ else if (!_response->_sourceValid ())
164+ send (500 , T_text_plain, " Invalid data in handler" );
163165 _client->setRxTimeout (0 );
164166 _response->_respond (this );
165167 _sent = true ;
@@ -587,13 +589,13 @@ void AsyncWebServerRequest::_parseLine() {
587589 if (_parseState == PARSE_REQ_START) {
588590 if (!_temp.length ()) {
589591 _parseState = PARSE_REQ_FAIL;
590- _client->close ();
592+ _client->abort ();
591593 } else {
592594 if (_parseReqHead ()) {
593595 _parseState = PARSE_REQ_HEADERS;
594596 } else {
595597 _parseState = PARSE_REQ_FAIL;
596- _client->close ();
598+ _client->abort ();
597599 }
598600 }
599601 return ;
@@ -616,6 +618,8 @@ void AsyncWebServerRequest::_parseLine() {
616618 if (!_sent) {
617619 if (!_response)
618620 send (501 , T_text_plain, " Handler did not handle the request" );
621+ else if (!_response->_sourceValid ())
622+ send (500 , T_text_plain, " Invalid data in handler" );
619623 _client->setRxTimeout (0 );
620624 _response->_respond (this );
621625 _sent = true ;
@@ -792,14 +796,6 @@ void AsyncWebServerRequest::send(AsyncWebServerResponse* response) {
792796 if (_response)
793797 delete _response;
794798 _response = response;
795- if (_response == NULL ) {
796- _client->close (true );
797- _onDisconnect ();
798- _sent = true ;
799- return ;
800- }
801- if (!_response->_sourceValid ())
802- send (500 );
803799}
804800
805801void AsyncWebServerRequest::redirect (const char * url, int code) {
0 commit comments