[experimental-ims] 6633013 Make RFC2616_Ttl() take a busyobj

Poul-Henning Kamp phk at FreeBSD.org
Thu Dec 18 10:27:38 CET 2014


commit 66330133c7c9bf3f454e2bea5140d8fbf29c9baa
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Sun Feb 19 10:21:44 2012 +0000

    Make RFC2616_Ttl() take a busyobj

diff --git a/bin/varnishd/cache/cache.h b/bin/varnishd/cache/cache.h
index 9a560c3..a8cf350 100644
--- a/bin/varnishd/cache/cache.h
+++ b/bin/varnishd/cache/cache.h
@@ -997,7 +997,7 @@ char *WS_Alloc(struct ws *ws, unsigned bytes);
 char *WS_Snapshot(struct ws *ws);
 
 /* rfc2616.c */
-void RFC2616_Ttl(const struct sess *sp);
+void RFC2616_Ttl(struct busyobj *, unsigned xid);
 enum body_status RFC2616_Body(const struct sess *sp);
 unsigned RFC2616_Req_Gzip(const struct sess *sp);
 int RFC2616_Do_Cond(const struct sess *sp);
diff --git a/bin/varnishd/cache/cache_center.c b/bin/varnishd/cache/cache_center.c
index ad0817e..a58b834 100644
--- a/bin/varnishd/cache/cache_center.c
+++ b/bin/varnishd/cache/cache_center.c
@@ -606,7 +606,7 @@ cnt_fetch(struct sess *sp, struct worker *wrk, struct req *req)
 		 */
 		EXP_Clr(&wrk->busyobj->exp);
 		wrk->busyobj->exp.entered = W_TIM_real(wrk);
-		RFC2616_Ttl(sp);
+		RFC2616_Ttl(wrk->busyobj, sp->req->xid);
 
 		/* pass from vclrecv{} has negative TTL */
 		if (req->objcore == NULL)
diff --git a/bin/varnishd/cache/cache_rfc2616.c b/bin/varnishd/cache/cache_rfc2616.c
index 2c3a368..2dafbd2 100644
--- a/bin/varnishd/cache/cache_rfc2616.c
+++ b/bin/varnishd/cache/cache_rfc2616.c
@@ -63,7 +63,7 @@
  */
 
 void
-RFC2616_Ttl(const struct sess *sp)
+RFC2616_Ttl(struct busyobj *bo, unsigned xid)
 {
 	unsigned max_age, age;
 	double h_date, h_expires;
@@ -71,9 +71,10 @@ RFC2616_Ttl(const struct sess *sp)
 	const struct http *hp;
 	struct exp *expp;
 
-	expp = &sp->wrk->busyobj->exp;
+	CHECK_OBJ_NOTNULL(bo, BUSYOBJ_MAGIC);
+	expp = &bo->exp;
 
-	hp = sp->wrk->busyobj->beresp;
+	hp = bo->beresp;
 
 	assert(expp->entered != 0.0 && !isnan(expp->entered));
 	/* If all else fails, cache using default ttl */
@@ -98,7 +99,7 @@ RFC2616_Ttl(const struct sess *sp)
 	if (http_GetHdr(hp, H_Date, &p))
 		h_date = VTIM_parse(p);
 
-	switch (sp->req->err_code) {
+	switch (http_GetStatus(hp)) {
 	default:
 		expp->ttl = -1.;
 		break;
@@ -167,9 +168,9 @@ RFC2616_Ttl(const struct sess *sp)
 	}
 
 	/* calculated TTL, Our time, Date, Expires, max-age, age */
-	VSLb(sp->req->vsl, SLT_TTL,	/* XXX Bo->vsl ? */
+	VSLb(bo->vsl, SLT_TTL,
 	    "%u RFC %.0f %.0f %.0f %.0f %.0f %.0f %.0f %u",
-	    sp->req->xid, expp->ttl, -1., -1., expp->entered,
+	    xid, expp->ttl, -1., -1., expp->entered,
 	    expp->age, h_date, h_expires, max_age);
 }
 



More information about the varnish-commit mailing list