chunked response makes no sense here and does not solve my problem, because it is (afaik) not related

This commit is contained in:
Marcus 2024-10-27 20:49:23 +01:00
parent 9af343bd3e
commit 735cff463e

View file

@ -483,28 +483,6 @@ String Proc_WebPage_system_output_add_POST(const String& var) {
} }
auto Chunk_system_output_add_HTML(uint8_t *buffer, size_t maxlen, size_t index) -> size_t {
// https://github.com/mathieucarbou/ESPAsyncWebServer?tab=readme-ov-file#chunked-response-containing-templates
//Write up to "maxLen" bytes into "buffer" and return the amount written.
//index equals the amount of bytes that have been already sent
//You will be asked for more data until 0 is returned
//Keep in mind that you can not delay or yield waiting for more data!
// https://forum.arduino.cc/t/espasyncwebserver-replay-page-size/1049106/19
// https://forum.arduino.cc/t/strlen-and-progmem/629376/3 - get len of PROGMEM
// https://forum.arduino.cc/t/strlen-and-progmem/629376/3
size_t len_html = strlen_P(reinterpret_cast<const char *>(Page_system_output_add_HTML));
size_t len = min(maxlen, len_html - index);
#ifdef DEBUG
Serial.printf(":: [Webserver:system:output:add(Chunked)] Sending len %u bytes , maxlen %u, index %u, sizeof %u\n", len, maxlen, index, len_html);
#endif
memcpy(buffer, Page_system_output_add_HTML + index, len);
return len;
}
// I accidently tried chunked response but as the output config page might get pretty big
// i leave it as chunked response
void WebPage_system_output_add(AsyncWebServerRequest *request) { void WebPage_system_output_add(AsyncWebServerRequest *request) {
if(request->method() == HTTP_POST) { if(request->method() == HTTP_POST) {
Serial.println(":: [Webserver:system:output:add] [POST] hello"); Serial.println(":: [Webserver:system:output:add] [POST] hello");
@ -602,10 +580,8 @@ void WebPage_system_output_add(AsyncWebServerRequest *request) {
SaveConfig(); SaveConfig();
AsyncWebServerResponse *response = request->beginChunkedResponse("text/html", Chunk_system_output_add_HTML, Proc_WebPage_system_output_add_POST); request->send_P(200, "text/html", Page_system_output_add_HTML, Proc_WebPage_system_output_add_POST);
request->send(response);
} else { } else {
AsyncWebServerResponse *response = request->beginChunkedResponse("text/html", Chunk_system_output_add_HTML, Proc_WebPage_system_output_add); request->send_P(200, "text/html", Page_system_output_add_HTML, Proc_WebPage_system_output_add);
request->send(response);
} }
} }