void Req_Rollback(struct req *req) { VCL_TaskLeave(req->vcl, req->privs); VCL_TaskEnter(req->vcl, req->privs); HTTP_Clone(req->http, req->http0); if (WS_Overflowed(req->ws)) req->wrk->stats->ws_client_overflow++; WS_Reset(req->ws, req->ws_req); }
void VRT_vcl_select(VRT_CTX, VCL_VCL vcl) { struct req *req = ctx->req; CHECK_OBJ_NOTNULL(vcl, VCL_MAGIC); VCL_TaskLeave(req->vcl, req->privs); VCL_Rel(&req->vcl); vcl_get(&req->vcl, vcl); /* XXX: better logging */ VSLb(ctx->req->vsl, SLT_Debug, "Now using %s VCL", vcl->loaded_name); VCL_TaskEnter(req->vcl, req->privs); }