mirror of
https://github.com/me-no-dev/ESPAsyncWebServer.git
synced 2025-07-30 02:37:32 +02:00
Reset connection when appropriate + some code cleanup
This commit is contained in:
@ -89,7 +89,7 @@ void AsyncWebServerRequest::_onData(void* buf, size_t len) {
|
|||||||
// Check for null characters in header
|
// Check for null characters in header
|
||||||
if (!str[i]) {
|
if (!str[i]) {
|
||||||
_parseState = PARSE_REQ_FAIL;
|
_parseState = PARSE_REQ_FAIL;
|
||||||
_client->close(true);
|
_client->abort();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
if (str[i] == '\n') {
|
if (str[i] == '\n') {
|
||||||
@ -160,6 +160,8 @@ void AsyncWebServerRequest::_onData(void* buf, size_t len) {
|
|||||||
if (!_sent) {
|
if (!_sent) {
|
||||||
if (!_response)
|
if (!_response)
|
||||||
send(501, T_text_plain, "Handler did not handle the request");
|
send(501, T_text_plain, "Handler did not handle the request");
|
||||||
|
else if (!_response->_sourceValid())
|
||||||
|
send(500, T_text_plain, "Invalid data in handler");
|
||||||
_client->setRxTimeout(0);
|
_client->setRxTimeout(0);
|
||||||
_response->_respond(this);
|
_response->_respond(this);
|
||||||
_sent = true;
|
_sent = true;
|
||||||
@ -587,13 +589,13 @@ void AsyncWebServerRequest::_parseLine() {
|
|||||||
if (_parseState == PARSE_REQ_START) {
|
if (_parseState == PARSE_REQ_START) {
|
||||||
if (!_temp.length()) {
|
if (!_temp.length()) {
|
||||||
_parseState = PARSE_REQ_FAIL;
|
_parseState = PARSE_REQ_FAIL;
|
||||||
_client->close();
|
_client->abort();
|
||||||
} else {
|
} else {
|
||||||
if (_parseReqHead()) {
|
if (_parseReqHead()) {
|
||||||
_parseState = PARSE_REQ_HEADERS;
|
_parseState = PARSE_REQ_HEADERS;
|
||||||
} else {
|
} else {
|
||||||
_parseState = PARSE_REQ_FAIL;
|
_parseState = PARSE_REQ_FAIL;
|
||||||
_client->close();
|
_client->abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
@ -616,6 +618,8 @@ void AsyncWebServerRequest::_parseLine() {
|
|||||||
if (!_sent) {
|
if (!_sent) {
|
||||||
if (!_response)
|
if (!_response)
|
||||||
send(501, T_text_plain, "Handler did not handle the request");
|
send(501, T_text_plain, "Handler did not handle the request");
|
||||||
|
else if (!_response->_sourceValid())
|
||||||
|
send(500, T_text_plain, "Invalid data in handler");
|
||||||
_client->setRxTimeout(0);
|
_client->setRxTimeout(0);
|
||||||
_response->_respond(this);
|
_response->_respond(this);
|
||||||
_sent = true;
|
_sent = true;
|
||||||
@ -792,14 +796,6 @@ void AsyncWebServerRequest::send(AsyncWebServerResponse* response) {
|
|||||||
if (_response)
|
if (_response)
|
||||||
delete _response;
|
delete _response;
|
||||||
_response = response;
|
_response = response;
|
||||||
if (_response == NULL) {
|
|
||||||
_client->close(true);
|
|
||||||
_onDisconnect();
|
|
||||||
_sent = true;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (!_response->_sourceValid())
|
|
||||||
send(500);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void AsyncWebServerRequest::redirect(const char* url, int code) {
|
void AsyncWebServerRequest::redirect(const char* url, int code) {
|
||||||
|
@ -56,8 +56,7 @@ AsyncWebServer::AsyncWebServer(uint16_t port)
|
|||||||
c->setRxTimeout(3);
|
c->setRxTimeout(3);
|
||||||
AsyncWebServerRequest* r = new AsyncWebServerRequest((AsyncWebServer*)s, c);
|
AsyncWebServerRequest* r = new AsyncWebServerRequest((AsyncWebServer*)s, c);
|
||||||
if (r == NULL) {
|
if (r == NULL) {
|
||||||
c->close(true);
|
c->abort();
|
||||||
c->free();
|
|
||||||
delete c;
|
delete c;
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
Reference in New Issue
Block a user