Commit 9303cca4 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

Send back Connection: keep-alive for the request with http/1.0 keep-alive

parent 73196201
......@@ -116,6 +116,8 @@ void check_request_connection(bool *connection_close,
if(util::strieq(item.first.c_str(), "connection")) {
if(util::strifind(item.second.c_str(), "close")) {
*connection_close = true;
} else if(util::strifind(item.second.c_str(), "keep-alive")) {
*connection_close = false;
}
}
}
......@@ -155,6 +157,16 @@ void Downstream::set_request_minor(int minor)
request_minor_ = minor;
}
int Downstream::get_request_major() const
{
return request_major_;
}
int Downstream::get_request_minor() const
{
return request_minor_;
}
Upstream* Downstream::get_upstream() const
{
return upstream_;
......
......@@ -65,6 +65,8 @@ public:
void set_request_path(const std::string& path);
void set_request_major(int major);
void set_request_minor(int minor);
int get_request_major() const;
int get_request_minor() const;
int push_request_headers();
bool get_chunked_request() const;
bool get_request_connection_close() const;
......
......@@ -476,6 +476,9 @@ int HttpsUpstream::on_downstream_header_complete(Downstream *downstream)
}
if(get_client_handler()->get_should_close_after_write()) {
hdrs += "Connection: close\r\n";
} else if(downstream->get_request_major() == 1 &&
downstream->get_request_minor() == 0) {
hdrs += "Connection: Keep-Alive\r\n";
}
hdrs += "Via: ";
hdrs += via_value;
......
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