It may violate draft-09 section 8.1.3.1. Proxy should perseve
host header field.
This commit is contained in:
Tatsuhiro Tsujikawa 2013-12-16 21:14:31 +09:00
parent 3c57327274
commit 7222f63dbd
2 changed files with 8 additions and 17 deletions

View File

@ -160,7 +160,6 @@ namespace {
const char *IGN_HD[] = { const char *IGN_HD[] = {
"connection", "connection",
"expect", "expect",
"host",
"http2-settings", "http2-settings",
"keep-alive", "keep-alive",
"proxy-connection", "proxy-connection",

View File

@ -267,15 +267,11 @@ int Http2DownstreamConnection::push_request_headers()
nva.push_back(http2::make_nv_ls nva.push_back(http2::make_nv_ls
(":authority", (":authority",
downstream_->get_request_http2_authority())); downstream_->get_request_http2_authority()));
} else { } else if(downstream_->get_norm_request_header("host") == end_headers) {
auto host = downstream_->get_norm_request_header("host"); if(LOG_ENABLED(INFO)) {
if(host == end_headers) { DCLOG(INFO, this) << "host header field missing";
if(LOG_ENABLED(INFO)) {
DCLOG(INFO, this) << "host header field missing";
}
return -1;
} }
nva.push_back(http2::make_nv_ls("host", (*host).second)); return -1;
} }
} else { } else {
// The upstream is HTTP/1 // The upstream is HTTP/1
@ -322,15 +318,11 @@ int Http2DownstreamConnection::push_request_headers()
authority += util::utos(u.port); authority += util::utos(u.port);
} }
nva.push_back(http2::make_nv_ls(":authority", authority)); nva.push_back(http2::make_nv_ls(":authority", authority));
} else { } else if(downstream_->get_norm_request_header("host") == end_headers) {
auto host = downstream_->get_norm_request_header("host"); if(LOG_ENABLED(INFO)) {
if(host == end_headers) { DCLOG(INFO, this) << "host header field missing";
if(LOG_ENABLED(INFO)) {
DCLOG(INFO, this) << "host header field missing";
}
return -1;
} }
nva.push_back(http2::make_nv_ls("host", (*host).second)); return -1;
} }
} }