r3528 - in branches/2.0/varnish-cache/bin: varnishd varnishtest/tests

tfheen at projects.linpro.no tfheen at projects.linpro.no
Mon Jan 19 13:52:30 CET 2009


Author: tfheen
Date: 2009-01-19 13:52:30 +0100 (Mon, 19 Jan 2009)
New Revision: 3528

Added:
   branches/2.0/varnish-cache/bin/varnishtest/tests/r00386.vtc
Modified:
   branches/2.0/varnish-cache/bin/varnishd/cache_vrt_esi.c
Log:

Merge r3433: 

When we receive an If-Modified-Since on an ESI object, do not process the
conditional for the child object and pretend to send a 304 reply for them, if
we have decided to deliver the main object.

Fixes #386



Modified: branches/2.0/varnish-cache/bin/varnishd/cache_vrt_esi.c
===================================================================
--- branches/2.0/varnish-cache/bin/varnishd/cache_vrt_esi.c	2009-01-19 12:44:57 UTC (rev 3527)
+++ branches/2.0/varnish-cache/bin/varnishd/cache_vrt_esi.c	2009-01-19 12:52:30 UTC (rev 3528)
@@ -837,7 +837,14 @@
 		sp->director = NULL;
 		sp->step = STP_RECV;
 		http_ForceGet(sp->http);
+
+		/* Don't do conditionals */
+		sp->http->conds = 0;
+		http_Unset(sp->http, H_If_Modified_Since);
+
+		/* Client content already taken care of */
 		http_Unset(sp->http, H_Content_Length);
+
 		while (1) {
 			CNT_Session(sp);
 			if (sp->step == STP_DONE)

Copied: branches/2.0/varnish-cache/bin/varnishtest/tests/r00386.vtc (from rev 3433, trunk/varnish-cache/bin/varnishtest/tests/r00386.vtc)
===================================================================
--- branches/2.0/varnish-cache/bin/varnishtest/tests/r00386.vtc	                        (rev 0)
+++ branches/2.0/varnish-cache/bin/varnishtest/tests/r00386.vtc	2009-01-19 12:52:30 UTC (rev 3528)
@@ -0,0 +1,29 @@
+# $Id$
+
+test "#386, failure to insert include"
+
+server s1 {
+	rxreq
+	expect req.url == "/body"
+	txresp -hdr "Last-Modified: Tue, 25 Nov 2008 00:00:00 GMT" -body "BODY"
+	rxreq 
+	expect req.url == "/"
+	txresp -body {<X><esi:include src="/body"/></X>}
+} -start
+
+varnish v1 -arg "-p diag_bitmap=0x20" -vcl+backend {
+	sub vcl_fetch {
+		if (req.url == "/") {
+			esi;
+		}
+	}
+} -start
+
+client c1 {
+	txreq -url /body
+	rxresp
+	expect resp.bodylen == 4
+	txreq -url / -hdr "If-Modified-Since:  Tue, 25 Nov 2008 00:00:00 GMT"
+	rxresp
+	expect resp.bodylen == 11
+} -start



More information about the varnish-commit mailing list