From c7d311e528ff9c2c4492971e6a7aa1d1c10f999d Mon Sep 17 00:00:00 2001 From: pschatzmann Date: Wed, 20 Nov 2024 20:15:59 +0100 Subject: [PATCH] HttpRequest end() for is_chunked_output_active --- src/AudioTools/CoreAudio/AudioHttp/HttpRequest.h | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/AudioTools/CoreAudio/AudioHttp/HttpRequest.h b/src/AudioTools/CoreAudio/AudioHttp/HttpRequest.h index fb8ab0a4b..ade522f5d 100644 --- a/src/AudioTools/CoreAudio/AudioHttp/HttpRequest.h +++ b/src/AudioTools/CoreAudio/AudioHttp/HttpRequest.h @@ -61,6 +61,9 @@ class HttpRequest : public BaseStream { /// same as end() void end() override { if (connected()) { + // write final 0 chunk if necessary + if (is_chunked_output_active) client_ptr->println(0, HEX); + client_ptr->flush(); LOGI("stop"); client_ptr->stop(); } @@ -284,6 +287,7 @@ class HttpRequest : public BaseStream { size_t result = 0; if (isChunked()) { if (len > 0) { + is_chunked_output_active = true; client_ptr->println(len, HEX); result = client_ptr->write(data, len); client_ptr->println(); @@ -343,6 +347,7 @@ class HttpRequest : public BaseStream { int32_t clientTimeout = URL_CLIENT_TIMEOUT; // 60000; void (*http_connect_callback)(HttpRequest &request, Url &url, HttpRequestHeader &request_header) = nullptr; + bool is_chunked_output_active = false; // opens a connection to the indicated host virtual int connect(const char *ip, uint16_t port, int32_t timeout) {