[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