summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJo-Philipp Wich2025-04-05 12:28:34 +0000
committerJo-Philipp Wich2025-04-05 12:32:36 +0000
commitfad0d05da757dcd73abc2beb02ce4e4edf83ac3d (patch)
tree891a75f1a51ac5037cae13a6573a5e1a28d37614
parentb3e3c05d6781caa5db54fc9913772ddc1af2e045 (diff)
proc: inhibit chunked transfer encoding on existing TEs or known length
When a backend CGI, Lua or ucode handler produces a response which either includes a Content-Length or a Transfer-Encoding header then disable the uhttpd side chunked transfer encoding and assume the backend response to be already properly encoded or length delimitted. Fixes: https://github.com/openwrt/luci/issues/7655 Signed-off-by: Jo-Philipp Wich <jo@mein.io>
-rw-r--r--proc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/proc.c b/proc.c
index 2b69703..89fe320 100644
--- a/proc.c
+++ b/proc.c
@@ -218,6 +218,10 @@ static void proc_handle_header(struct relay *r, const char *name, const char *va
cl->dispatch.proc.status_code = atoi(buf);
return;
}
+ else if (!strcasecmp(name, "Content-Length") ||
+ !strcasecmp(name, "Transfer-Encoding")) {
+ cl->request.disable_chunked = true;
+ }
blobmsg_add_string(&cl->dispatch.proc.hdr, name, val);
}