Send back Connection: keep-alive for the request with http/1.0 keep-alive
This commit is contained in:
parent
7319620160
commit
9303cca430
|
@ -116,6 +116,8 @@ void check_request_connection(bool *connection_close,
|
||||||
if(util::strieq(item.first.c_str(), "connection")) {
|
if(util::strieq(item.first.c_str(), "connection")) {
|
||||||
if(util::strifind(item.second.c_str(), "close")) {
|
if(util::strifind(item.second.c_str(), "close")) {
|
||||||
*connection_close = true;
|
*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;
|
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
|
Upstream* Downstream::get_upstream() const
|
||||||
{
|
{
|
||||||
return upstream_;
|
return upstream_;
|
||||||
|
|
|
@ -65,6 +65,8 @@ public:
|
||||||
void set_request_path(const std::string& path);
|
void set_request_path(const std::string& path);
|
||||||
void set_request_major(int major);
|
void set_request_major(int major);
|
||||||
void set_request_minor(int minor);
|
void set_request_minor(int minor);
|
||||||
|
int get_request_major() const;
|
||||||
|
int get_request_minor() const;
|
||||||
int push_request_headers();
|
int push_request_headers();
|
||||||
bool get_chunked_request() const;
|
bool get_chunked_request() const;
|
||||||
bool get_request_connection_close() 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()) {
|
if(get_client_handler()->get_should_close_after_write()) {
|
||||||
hdrs += "Connection: close\r\n";
|
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: ";
|
||||||
hdrs += via_value;
|
hdrs += via_value;
|
||||||
|
|
Loading…
Reference in New Issue