From b452cdb40f8fe68ea5572c2b3a90e53c659bfdc3 Mon Sep 17 00:00:00 2001 From: Dridi Boukelmoune Date: Fri, 15 Mar 2024 18:16:17 +0100 Subject: [PATCH] condfetch: Check stale_oc bans before and after revalidation --- bin/varnishd/cache/cache_fetch.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/bin/varnishd/cache/cache_fetch.c b/bin/varnishd/cache/cache_fetch.c index 524a89c0bae..48a90e31b0d 100644 --- a/bin/varnishd/cache/cache_fetch.c +++ b/bin/varnishd/cache/cache_fetch.c @@ -269,6 +269,9 @@ vbf_stp_mkbereq(struct worker *wrk, struct busyobj *bo) } http_ForceField(bo->bereq0, HTTP_HDR_PROTO, "HTTP/1.1"); + if (bo->stale_oc != NULL) + HSH_CheckBans(wrk, bo->stale_oc); + if (bo->stale_oc != NULL && !(bo->stale_oc->flags & OC_F_DYING) && ObjCheckFlag(bo->wrk, bo->stale_oc, OF_IMSCAND) && (bo->stale_oc->boc != NULL || ObjGetLen(wrk, bo->stale_oc) != 0)) { @@ -835,6 +838,8 @@ vbf_stp_condfetch(struct worker *wrk, struct busyobj *bo) stale_oc = bo->stale_oc; CHECK_OBJ_NOTNULL(stale_oc, OBJCORE_MAGIC); + HSH_CheckBans(wrk, stale_oc); + if (stale_oc->flags & OC_F_DYING) { (void)VFP_Error(bo->vfc, "Template object invalidated"); vbf_cleanup(bo);