From: phk Date: Mon, 1 Oct 2007 07:21:26 +0000 (+0000) Subject: We always want to go through vcl_fetch(), even on error 503 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=185403984414ee8645287bc6ca71602dfe9dee9b;p=varnish We always want to go through vcl_fetch(), even on error 503 git-svn-id: svn+ssh://projects.linpro.no/svn/varnish/trunk@2070 d4fa192b-c00b-0410-8231-f00ffab90ce4 --- diff --git a/varnish-cache/bin/varnishd/cache_center.c b/varnish-cache/bin/varnishd/cache_center.c index fd5f4e90..e2e852e3 100644 --- a/varnish-cache/bin/varnishd/cache_center.c +++ b/varnish-cache/bin/varnishd/cache_center.c @@ -304,39 +304,35 @@ cnt_fetch(struct sess *sp) VBE_free_bereq(sp->bereq); sp->bereq = NULL; - if (0 && i) { - SYN_ErrorPage(sp, 503, "Error talking to backend", 30); - } else { - if (!i) - RFC2616_cache_policy(sp, &sp->obj->http); /* XXX -> VCL */ - else - sp->obj->http.status = 503; - - VCL_fetch_method(sp); - - switch (sp->handling) { - case VCL_RET_ERROR: - case VCL_RET_RESTART: - sp->obj->ttl = 0; - sp->obj->cacheable = 0; - HSH_Unbusy(sp->obj); - HSH_Deref(sp->obj); - sp->obj = NULL; - if (sp->handling == VCL_RET_ERROR) - sp->step = STP_ERROR; - else { - sp->restarts++; - sp->step = STP_RECV; - } - return (0); - case VCL_RET_PASS: - sp->obj->pass = 1; - break; - case VCL_RET_INSERT: - break; - default: - INCOMPL(); + if (!i) + RFC2616_cache_policy(sp, &sp->obj->http); /* XXX -> VCL */ + else + http_PutStatus(sp->wrk, sp->fd, &sp->obj->http, 503); + + VCL_fetch_method(sp); + + switch (sp->handling) { + case VCL_RET_ERROR: + case VCL_RET_RESTART: + sp->obj->ttl = 0; + sp->obj->cacheable = 0; + HSH_Unbusy(sp->obj); + HSH_Deref(sp->obj); + sp->obj = NULL; + if (sp->handling == VCL_RET_ERROR) + sp->step = STP_ERROR; + else { + sp->restarts++; + sp->step = STP_RECV; } + return (0); + case VCL_RET_PASS: + sp->obj->pass = 1; + break; + case VCL_RET_INSERT: + break; + default: + INCOMPL(); } sp->obj->cacheable = 1;