fix chunked transfer encoding in keepalive mode
[project/uhttpd.git] / utils.c
diff --git a/utils.c b/utils.c
index 1c21fc5..29e03c0 100644 (file)
--- a/utils.c
+++ b/utils.c
@@ -28,7 +28,11 @@ bool uh_use_chunked(struct client *cl)
        if (cl->request.method == UH_HTTP_MSG_HEAD || cl->request.method == UH_HTTP_MSG_OPTIONS)
                return false;
 
-       return true;
+       /* RFC2616 10.2.5, 10.3.5 */
+       if (cl->http_code == 204 || cl->http_code == 304)
+               return false;
+
+       return !cl->request.disable_chunked;
 }
 
 void uh_chunk_write(struct client *cl, const void *data, int len)