[master] 27203a6d1 cache_req_fsm: Split the tail of cnt_transmit() into a new finish step
Nils Goroll
nils.goroll at uplex.de
Mon Nov 25 17:30:04 UTC 2024
commit 27203a6d1d1b75c3fb93cbeb0dee7db473541312
Author: Nils Goroll <nils.goroll at uplex.de>
Date: Fri Nov 1 15:59:45 2024 +0100
cache_req_fsm: Split the tail of cnt_transmit() into a new finish step
To prepare for the next commit, we introduce a new finish step to the request
FSM, which is just the former tail of cnt_transmit().
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index a167b2839..bc4568911 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -66,7 +66,8 @@
REQ_STEP(deliver, DELIVER, static) \
REQ_STEP(vclfail, VCLFAIL, static) \
REQ_STEP(synth, SYNTH, static) \
- REQ_STEP(transmit, TRANSMIT, static)
+ REQ_STEP(transmit, TRANSMIT, static) \
+ REQ_STEP(finish, FINISH, static)
#define REQ_STEP(l, U, priv) \
static req_state_f cnt_##l; \
@@ -499,6 +500,16 @@ cnt_transmit(struct worker *wrk, struct req *req)
sendbody = 0;
req->transport->deliver(req, sendbody);
}
+ req->req_step = R_STP_FINISH;
+ return (REQ_FSM_MORE);
+}
+
+static enum req_fsm_nxt v_matchproto_(req_state_f)
+cnt_finish(struct worker *wrk, struct req *req)
+{
+
+ CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
+ CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
VSLb_ts_req(req, "Resp", W_TIM_real(wrk));
More information about the varnish-commit
mailing list