
geoff at varnish-cache
Jan 31, 2012, 12:47 PM
Post #1 of 1
(21 views)
Permalink
|
|
[experimental-ims] 1f8cdd7 Merge branch 'master' of ssh://git.varnish-cache.org/git/varnish-cache into experimental-ims
|
|
commit 1f8cdd71888885c0509d86cb1af906d22c6fa053 Merge: 3df9ebf 8a9ad30 Author: Geoff Simmons <geoff [at] uplex> Date: Tue Jan 31 21:40:15 2012 +0100 Merge branch 'master' of ssh://git.varnish-cache.org/git/varnish-cache into experimental-ims diff --cc bin/varnishd/cache/cache_center.c index 8897e83,c933175..623eefd --- a/bin/varnishd/cache/cache_center.c +++ b/bin/varnishd/cache/cache_center.c @@@ -647,15 -618,9 +630,15 @@@ cnt_fetch(struct sess *sp, struct worke AZ(wrk->busyobj->do_esi); AZ(wrk->busyobj->do_pass); - + VCL_fetch_method(sp); + /* Cancel streaming if a stale object was validated */ + /* XXX: But not if original beresp.status != 304 */ + /* See also AZ(busyobj->stale_obj) in cnt_streambody() */ + if (wrk->busyobj->stale_obj) + wrk->busyobj->do_stream = 0; + if (req->objcore != NULL && wrk->busyobj->do_pass) req->objcore->flags |= OC_F_PASS; @@@ -698,33 -663,25 +681,25 @@@ } /*-------------------------------------------------------------------- - * Fetch response body from the backend + * Prepare to fetch body from backend * DOT subgraph xcluster_body { - DOT fetchbody [ - DOT shape=diamond - DOT label="stream ?" - DOT ] - DOT fetchbody2 [. - DOT shape=ellipse - DOT label="fetch body\nfrom backend\n" + DOT prepfetch [ + DOT shape=record + DOT label="{cnt_prepfetch:|error?|<out>stream ?}" DOT ] DOT } - DOT fetchbody -> fetchbody2 [label=no,style=bold,color=red] - DOT fetchbody -> fetchbody2 [style=bold,color=blue] - DOT fetchbody -> prepresp [label=yes,style=bold,color=cyan] - DOT fetchbody2 -> prepresp [style=bold,color=red] - DOT fetchbody2 -> prepresp [style=bold,color=blue] + DOT prepfetch:out -> fetchbody [style=bold,color=red] + DOT prepfetch:out -> fetchbody [style=bold,color=blue] + DOT prepfetch:out -> prepresp [label=yes,style=bold,color=cyan] */ - static int - cnt_fetchbody(struct sess *sp, struct worker *wrk, struct req *req) + cnt_prepfetch(struct sess *sp, struct worker *wrk, struct req *req) { - int i; struct http *hp, *hp2; char *b; - uint16_t nhttp; + uint16_t nhttp, stale_nhttp; unsigned l; struct vsb *vary = NULL; int varyl = 0, pass; _______________________________________________ varnish-commit mailing list varnish-commit [at] varnish-cache https://www.varnish-cache.org/lists/mailman/listinfo/varnish-commit
|