utils: do not emit eof chunk for 204/304 responses
[project/uhttpd.git] / utils.c
diff --git a/utils.c b/utils.c
index b1d7d37..1092a7d 100644 (file)
--- a/utils.c
+++ b/utils.c
@@ -25,7 +25,11 @@ bool uh_use_chunked(struct client *cl)
        if (cl->request.version != UH_HTTP_VER_1_1)
                return false;
 
-       if (cl->request.method == UH_HTTP_MSG_HEAD)
+       if (cl->request.method == UH_HTTP_MSG_HEAD || cl->request.method == UH_HTTP_MSG_OPTIONS)
+               return false;
+
+       /* RFC2616 10.2.5, 10.3.5 */
+       if (cl->http_code == 204 || cl->http_code == 304)
                return false;
 
        return true;