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) ...@@ -864,15 +864,20 @@ cnt_recv(struct worker *wrk, struct req *req)
req->req_step = R_STP_LOOKUP; req->req_step = R_STP_LOOKUP;
return (REQ_FSM_MORE); return (REQ_FSM_MORE);
case VCL_RET_PIPE: 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; req->req_step = R_STP_PIPE;
return (REQ_FSM_MORE);
} }
VSLb(req->vsl, SLT_VCL_Error, return (REQ_FSM_MORE);
"vcl_recv{} returns pipe for ESI included object."
" Doing pass.");
req->req_step = R_STP_PASS;
return (REQ_FSM_DONE);
case VCL_RET_PASS: case VCL_RET_PASS:
req->req_step = R_STP_PASS; req->req_step = R_STP_PASS;
return (REQ_FSM_MORE); return (REQ_FSM_MORE);
......
...@@ -9,7 +9,11 @@ server s1 { ...@@ -9,7 +9,11 @@ server s1 {
-bodylen 10 -bodylen 10
} -start } -start
varnish v1 -vcl+backend {} -start varnish v1 -vcl+backend {
sub vcl_recv {
return (pipe);
}
} -start
varnish v1 -cliok "param.set debug +syncvsl" 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