From: tfheen Date: Mon, 19 Jan 2009 12:52:30 +0000 (+0000) Subject: Merge r3433: X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a93701bb1f71849eed5d6e1f6b4eaf8be351e784;p=varnish 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 git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/branches/2.0@3528 d4fa192b-c00b-0410-8231-f00ffab90ce4 --- diff --git a/varnish-cache/bin/varnishd/cache_vrt_esi.c b/varnish-cache/bin/varnishd/cache_vrt_esi.c index c4975546..889b7fd1 100644 --- a/varnish-cache/bin/varnishd/cache_vrt_esi.c +++ b/varnish-cache/bin/varnishd/cache_vrt_esi.c @@ -837,7 +837,14 @@ ESI_Deliver(struct sess *sp) 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) diff --git a/varnish-cache/bin/varnishtest/tests/r00386.vtc b/varnish-cache/bin/varnishtest/tests/r00386.vtc new file mode 100644 index 00000000..48dc0766 --- /dev/null +++ b/varnish-cache/bin/varnishtest/tests/r00386.vtc @@ -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 {} +} -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