Page MenuHomePhabricator
Paste P2716

VTC: unproxy and normalize Host-header
ActivePublic

Authored by ema on Mar 7 2016, 3:54 PM.
Tags
None
Referenced Files
F3551802: VTC: unproxy and normalize Host-header
Mar 7 2016, 3:54 PM
Subscribers
None
varnishtest "unproxy and normalize Host-header"
server s1 {
rxreq
expect req.http.Host == "upload.wikimedia.org"
txresp
rxreq
expect req.http.Host == "en.wikipedia.org"
txresp
} -start
varnish v1 -arg "-p vcc_err_unref=false" -vcl+backend {
import std;
sub vcl_recv {
if(req.url ~ "(?i)^https?://[^/]") {
set req.http.Host = regsub(req.url, "(?i)^https?://(.*@)?([^/:]+).*$", "\2");
set req.url = regsub(req.url, "(?i)^https?://[^/]+", "");
}
set req.http.Host = std.tolower(regsub(req.http.Host, ":.*$", ""));
}
} -start
client c1 {
txreq -url "https://user:password@upload.wikimedia.org:80/?foo=bar"
rxresp
expect resp.status == 200
txreq -hdr "Host: en.wikipedia.org:31337"
rxresp
expect resp.status == 200
} -run