[master] db83e6d20 Revert "vrb: Don't cache an empty body"

Nils Goroll nils.goroll at uplex.de
Mon Aug 12 13:19:07 UTC 2024


commit db83e6d20b420e55acf31c23c8c4c98016ac67af
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Wed Jul 31 20:19:51 2024 +0200

    Revert "vrb: Don't cache an empty body"
    
    This reverts commit dbd9bd12d7e15bd364d23c0f32b1190154c7cc3f.

diff --git a/bin/varnishd/cache/cache_req_body.c b/bin/varnishd/cache/cache_req_body.c
index f2c894cc0..51d45471e 100644
--- a/bin/varnishd/cache/cache_req_body.c
+++ b/bin/varnishd/cache/cache_req_body.c
@@ -66,7 +66,6 @@ vrb_pull(struct req *req, ssize_t maxsize, objiterate_f *func, void *priv)
 	CHECK_OBJ_NOTNULL(req->htc, HTTP_CONN_MAGIC);
 	CHECK_OBJ_NOTNULL(req->vfc, VFP_CTX_MAGIC);
 	vfc = req->vfc;
-	AN(maxsize);
 
 	req->body_oc = HSH_Private(req->wrk);
 	AN(req->body_oc);
@@ -301,11 +300,7 @@ VRB_Cache(struct req *req, ssize_t maxsize)
 
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
 	assert (req->req_step == R_STP_RECV);
-
-	if (maxsize <= 0) {
-		VSLb(req->vsl, SLT_VCL_Error, "Cannot cache an empty req.body");
-		return (-1);
-	}
+	assert(maxsize >= 0);
 
 	/*
 	 * We only allow caching to happen the first time through vcl_recv{}
diff --git a/bin/varnishtest/tests/c00055.vtc b/bin/varnishtest/tests/c00055.vtc
index 1656baa61..048421967 100644
--- a/bin/varnishtest/tests/c00055.vtc
+++ b/bin/varnishtest/tests/c00055.vtc
@@ -17,8 +17,7 @@ varnish v1 -vcl+backend {
 	import std;
 
 	sub vcl_recv {
-		set req.http.stored = std.cache_req_body(
-			std.bytes(req.http.cache, 1KB));
+		set req.http.stored = std.cache_req_body(1KB);
 		return (pass);
 	}
 
@@ -75,45 +74,3 @@ client c5 {
 	txreq -req POST -hdr "Content-Length: 1025"
 	expect_close
 } -run
-
-server s1 {
-        rxreq
-        expect req.body == chunked_body
-        txresp
-} -start
-
-client c6 {
-        txreq -req POST -nolen -hdr "Transfer-Encoding: chunked"
-        chunked chunked
-        chunked _
-        chunked body
-        chunkedlen 0
-        rxresp
-        expect resp.http.stored == true
-} -run
-
-server s1 {
-        rxreq
-        expect req.bodylen == 0
-        txresp
-} -start
-
-client c7 {
-        txreq -req POST -nolen -hdr "Transfer-Encoding: chunked"
-        chunkedlen 0
-        rxresp
-        expect resp.http.stored == true
-} -run
-
-server s1 {
-        rxreq
-        expect req.bodylen == 0
-        txresp
-} -start
-
-client c8 {
-        txreq -req POST -nolen -hdr "cache: 0B" -hdr "Transfer-Encoding: chunked"
-        chunkedlen 0
-        rxresp
-        expect resp.http.stored == false
-} -run


More information about the varnish-commit mailing list