From 00743b49f4d444cf837ae761daec8a0e65d0e30d Mon Sep 17 00:00:00 2001 From: Mathieu Carbou Date: Sun, 19 Jul 2026 09:41:26 +0200 Subject: [PATCH 1/2] fix(http): close file before aborting request --- src/WebHandlers.cpp | 2 +- src/WebRequest.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/WebHandlers.cpp b/src/WebHandlers.cpp index ad3c1c1e..5a0977b2 100644 --- a/src/WebHandlers.cpp +++ b/src/WebHandlers.cpp @@ -178,8 +178,8 @@ bool AsyncStaticWebHandler::_searchFile(AsyncWebServerRequest *request, const St char *_tempPath = (char *)malloc(pathLen + 1); if (_tempPath == NULL) { async_ws_log_e("Failed to allocate"); - request->abort(); request->_tempFile.close(); + request->abort(); return false; } snprintf_P(_tempPath, pathLen + 1, PSTR("%s"), path.c_str()); diff --git a/src/WebRequest.cpp b/src/WebRequest.cpp index 78d303cb..2cba7d32 100644 --- a/src/WebRequest.cpp +++ b/src/WebRequest.cpp @@ -279,7 +279,7 @@ void AsyncWebServerRequest::onDisconnect(ArDisconnectHandler fn) { } void AsyncWebServerRequest::_onDisconnect() { - // os_printf("d\n"); + async_ws_log_v("onDisconnect() cb for request: %s", _url.c_str()); if (_onDisconnectfn) { _onDisconnectfn(); } @@ -1066,7 +1066,7 @@ void AsyncWebServerRequest::abort() { _sent = true; _paused = false; _this.reset(); - // async_ws_log_e("AsyncWebServerRequest::abort"); + async_ws_log_v("Abort request: %s", _url.c_str()); _client->abort(); } } From aa4267be5a69df9fecac8bf2e008ffbcdf74adf8 Mon Sep 17 00:00:00 2001 From: Mathieu Carbou Date: Sun, 19 Jul 2026 09:41:26 +0200 Subject: [PATCH 2/2] Fix: request->abort() was not firing onDisconnect() --- src/WebRequest.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/src/WebRequest.cpp b/src/WebRequest.cpp index 2cba7d32..0fe91674 100644 --- a/src/WebRequest.cpp +++ b/src/WebRequest.cpp @@ -1068,6 +1068,7 @@ void AsyncWebServerRequest::abort() { _this.reset(); async_ws_log_v("Abort request: %s", _url.c_str()); _client->abort(); + _onDisconnect(); } }