net: Allow overriding CONNECT authority with header

The -connect-authority header overrides the CONNECT authority field.

The Cronet bidirectional_stream API does not have a way to pass in this
field to support tunnels, so it has to be smuggled in via a header.
This commit is contained in:
klzgrad 2022-05-04 01:45:17 +08:00
parent d302a2ac9c
commit 43499924b9

View File

@ -111,6 +111,10 @@ void CreateSpdyHeadersFromHttpRequest(const HttpRequestInfo& info,
HttpRequestHeaders::Iterator it(request_headers); HttpRequestHeaders::Iterator it(request_headers);
while (it.GetNext()) { while (it.GetNext()) {
std::string name = base::ToLowerASCII(it.name()); std::string name = base::ToLowerASCII(it.name());
if (info.method == "CONNECT" && name == "-connect-authority") {
(*headers)[spdy::kHttp2AuthorityHeader] = it.value();
continue;
}
if (name.empty() || name[0] == ':' || name == "connection" || if (name.empty() || name[0] == ':' || name == "connection" ||
name == "proxy-connection" || name == "transfer-encoding" || name == "proxy-connection" || name == "transfer-encoding" ||
name == "host") { name == "host") {