mirror of
https://github.com/emsesp/EMS-ESP32.git
synced 2026-10-28 11:14:58 +00:00
Merge pull request #3306 from csutcliff/pr/upload-406-response
fix(upload): send the 406 response for a rejected upload
This commit is contained in:
@@ -60,6 +60,7 @@ This release is based on the latest Espressif/Arduino core version 3. It brings
|
||||
- Guru Meditation (cache error) on HybridCompile builds when the EMS or console UART ISR ran from flash during a SPI flash read (WiFi power-down, mDNS, NVS). The UART ISR and ringbuf ISR helpers are now in IRAM
|
||||
- compile errors against Arduino 3.3.12 from Tasmota/Arduino headers named `console.h`, `network.h` and `httpClient.h`. Those EMS-ESP headers are now `emsesp_console.h`, `emsesp_network.h` and `emsesp_http_client.h`
|
||||
- HTTP OTA from WSL/mDNS stalled on IPv6 and used tiny write chunks. Uploads now resolve IPv4 and stream in 64 KB blocks (`scripts/upload.py`, `scripts/upload_cli.py`)
|
||||
- a rejected upload (an invalid MD5 file, an unsupported file type) got no HTTP response: the connection was closed before the 406 was written, so `curl` reported "Empty reply from server". The 406 is now sent once the upload has been received
|
||||
|
||||
## Changed
|
||||
|
||||
|
||||
@@ -252,16 +252,8 @@ void UploadFileService::handleError(AsyncWebServerRequest * request, int code) {
|
||||
emsesp::EMSESP::system_.uart_init(); // re-enable UART
|
||||
_ota.abort();
|
||||
|
||||
// 406: the client sent a file we won't accept. Close now so the browser fails fast.
|
||||
// Other codes wait for uploadComplete() to send, so we don't destroy the request mid-stream.
|
||||
if (code == 406) {
|
||||
request->send(request->beginResponse(code));
|
||||
_response_sent = true;
|
||||
request->client()->close();
|
||||
_is_firmware = false;
|
||||
_is_filesystem = false;
|
||||
_is_recovery = false;
|
||||
}
|
||||
// uploadComplete() sends the error code. The web server only writes a response once the whole body has
|
||||
// arrived, so closing the connection here to fail fast would lose the response.
|
||||
|
||||
// if we aborted a filesystem upload, remount LittleFS so the device keeps working
|
||||
if (_is_filesystem) {
|
||||
|
||||
Reference in New Issue
Block a user