[master] 3f0c7ade7 Give esi:includes a ->minimal_reponse and make it panic, because that should not happen.

Poul-Henning Kamp phk at FreeBSD.org
Tue Dec 11 11:51:12 UTC 2018


commit 3f0c7ade7e23bc4317e07eb9c665bf6bd6bf02c1
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue Dec 11 10:33:12 2018 +0000

    Give esi:includes a ->minimal_reponse and make it panic, because
    that should not happen.

diff --git a/bin/varnishd/cache/cache_esi_deliver.c b/bin/varnishd/cache/cache_esi_deliver.c
index 656df25a8..97bc7e6f0 100644
--- a/bin/varnishd/cache/cache_esi_deliver.c
+++ b/bin/varnishd/cache/cache_esi_deliver.c
@@ -68,11 +68,20 @@ struct ecx {
 	uint32_t	crc;
 };
 
+static int v_matchproto_(vtr_minimal_response_f)
+ved_minimal_response(struct req *req, uint16_t status)
+{
+	(void)req;
+	(void)status;
+	WRONG("esi:includes should not try minimal responses");
+}
+
 static const struct transport VED_transport = {
-	.magic =	TRANSPORT_MAGIC,
-	.name =		"ESI_INCLUDE",
-	.deliver =	ved_deliver,
-	.reembark =	ved_reembark,
+	.magic =		TRANSPORT_MAGIC,
+	.name =			"ESI_INCLUDE",
+	.deliver =		ved_deliver,
+	.reembark =		ved_reembark,
+	.minimal_response =	ved_minimal_response,
 };
 
 /*--------------------------------------------------------------------*/
diff --git a/bin/varnishd/cache/cache_req_fsm.c b/bin/varnishd/cache/cache_req_fsm.c
index 69b5f8dd4..0a16ae808 100644
--- a/bin/varnishd/cache/cache_req_fsm.c
+++ b/bin/varnishd/cache/cache_req_fsm.c
@@ -64,7 +64,6 @@ cnt_transport(struct worker *wrk, struct req *req)
 	CHECK_OBJ_NOTNULL(req->http, HTTP_MAGIC);
 	CHECK_OBJ_NOTNULL(req->transport, TRANSPORT_MAGIC);
 	assert(req->req_body_status != REQ_BODY_INIT);
-	AN(req->transport->minimal_response);
 
 	if (http_GetHdr(req->http, H_Expect, &p)) {
 		if (strcasecmp(p, "100-continue")) {
@@ -1028,6 +1027,10 @@ CNT_Request(struct worker *wrk, struct req *req)
 	CHECK_OBJ_NOTNULL(wrk, WORKER_MAGIC);
 	CHECK_OBJ_NOTNULL(req, REQ_MAGIC);
 
+	CHECK_OBJ_NOTNULL(req->transport, TRANSPORT_MAGIC);
+	AN(req->transport->deliver);
+	AN(req->transport->minimal_response);
+
 	/*
 	 * Possible entrance states
 	 */


More information about the varnish-commit mailing list