return (TIM_real() - sp->obj->last_use);
}
+const char *
+VRT_r_obj_hash(struct sess *sp)
+{
+
+ CHECK_OBJ_NOTNULL(sp, SESS_MAGIC);
+ CHECK_OBJ_NOTNULL(sp->obj, OBJECT_MAGIC);
+ CHECK_OBJ_NOTNULL(sp->obj->objhead, OBJHEAD_MAGIC);
+ return (sp->obj->objhead->hash);
+}
+
int
VRT_r_backend_health(const struct sess *sp)
{
double VRT_r_obj_prefetch(const struct sess *);
void VRT_l_obj_prefetch(const struct sess *, double);
double VRT_r_obj_lastuse(const struct sess *);
+const char *VRT_r_obj_hash(struct sess *sp);
const char * VRT_r_resp_proto(const struct sess *);
void VRT_l_resp_proto(const struct sess *, const char *, ...);
int VRT_r_resp_status(const struct sess *);
0,
VCL_MET_HIT | VCL_MET_FETCH | VCL_MET_DELIVER | VCL_MET_DISCARD | VCL_MET_TIMEOUT
},
+ { "obj.hash", HASH, 8,
+ NULL,
+ "VRT_l_req_hash(sp, ",
+ V_RO,
+ 0,
+ VCL_MET_MISS | VCL_MET_HIT | VCL_MET_FETCH | VCL_MET_DELIVER
+ },
{ "resp.proto", STRING, 10,
"VRT_r_resp_proto(sp)",
"VRT_l_resp_proto(sp, ",