예제 #1
0
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);
}
예제 #2
0
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);
}