Commit d26a8287 authored by Dridi Boukelmoune's avatar Dridi Boukelmoune

Collapse Cookie headers in HTTP/2

Fixes #2291
parent 5087989e
/*-
* Copyright (c) 2006 Verdens Gang AS
* Copyright (c) 2006-2015 Varnish Software AS
* Copyright (c) 2006-2017 Varnish Software AS
* All rights reserved.
*
* Author: Poul-Henning Kamp <phk@phk.freebsd.dk>
......@@ -799,6 +799,9 @@ cnt_recv(struct worker *wrk, struct req *req)
http_CollectHdr(req->http, H_Cache_Control);
if (req->http->protover == 20) // rfc7540,l,3114,3120
http_CollectHdrSep(req->http, H_Cookie, "; ");
if (req->req_body_status == REQ_BODY_FAIL) {
req->doclose = SC_OVERLOAD;
return (REQ_FSM_DONE);
......
varnishtest "Collect cookie headers in HTTP/2"
server s1 -repeat 2 {
rxreq
txresp
} -start
varnish v1 -vcl+backend { } -start
varnish v1 -cliok "param.set feature +http2"
logexpect l1 -v v1 {
expect * * BereqProtocol HTTP/1.1
expect * = BereqHeader "Cookie: user=alice"
expect * = BereqHeader "Cookie: peer=bob"
expect * * BereqProtocol HTTP/2.0
expect * = BereqHeader "cookie: user=alice; peer=bob"
} -start
client c1 {
txreq -hdr "Cookie: user=alice" -hdr "Cookie: peer=bob"
rxresp
expect resp.status == 200
} -run
client c2 {
stream 1 {
txreq -hdr cookie user=alice -hdr cookie peer=bob
rxresp
expect resp.status == 200
} -run
} -run
logexpect l1 -wait
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