Commit 308843aa authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Don't attept return(pipe) on HTTP/2 requests, pass with a VSL message.

parent b2ff51b0
......@@ -864,15 +864,20 @@ cnt_recv(struct worker *wrk, struct req *req)
req->req_step = R_STP_LOOKUP;
return (REQ_FSM_MORE);
case VCL_RET_PIPE:
if (req->esi_level == 0) {
if (req->esi_level > 0) {
VSLb(req->vsl, SLT_VCL_Error,
"vcl_recv{} returns pipe for ESI included object."
" Doing pass.");
req->req_step = R_STP_PASS;
} else if (req->http0->protover > 11) {
VSLb(req->vsl, SLT_VCL_Error,
"vcl_recv{} returns pipe for HTTP/2 request."
" Doing pass.");
req->req_step = R_STP_PASS;
} else {
req->req_step = R_STP_PIPE;
return (REQ_FSM_MORE);
}
VSLb(req->vsl, SLT_VCL_Error,
"vcl_recv{} returns pipe for ESI included object."
" Doing pass.");
req->req_step = R_STP_PASS;
return (REQ_FSM_DONE);
return (REQ_FSM_MORE);
case VCL_RET_PASS:
req->req_step = R_STP_PASS;
return (REQ_FSM_MORE);
......
......@@ -9,7 +9,11 @@ server s1 {
-bodylen 10
} -start
varnish v1 -vcl+backend {} -start
varnish v1 -vcl+backend {
sub vcl_recv {
return (pipe);
}
} -start
varnish v1 -cliok "param.set debug +syncvsl"
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment