nghttpx: Ignore trailer headers in HTTP/1.1
This commit is contained in:
parent
8fe093de1d
commit
1de20c1232
|
@ -532,6 +532,10 @@ int htp_hdrs_completecb(http_parser *htp) {
|
||||||
namespace {
|
namespace {
|
||||||
int htp_hdr_keycb(http_parser *htp, const char *data, size_t len) {
|
int htp_hdr_keycb(http_parser *htp, const char *data, size_t len) {
|
||||||
auto downstream = static_cast<Downstream *>(htp->data);
|
auto downstream = static_cast<Downstream *>(htp->data);
|
||||||
|
if (downstream->get_response_state() != Downstream::INITIAL) {
|
||||||
|
// ignore trailers
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (downstream->get_response_header_key_prev()) {
|
if (downstream->get_response_header_key_prev()) {
|
||||||
downstream->append_last_response_header_key(data, len);
|
downstream->append_last_response_header_key(data, len);
|
||||||
} else {
|
} else {
|
||||||
|
@ -551,6 +555,10 @@ int htp_hdr_keycb(http_parser *htp, const char *data, size_t len) {
|
||||||
namespace {
|
namespace {
|
||||||
int htp_hdr_valcb(http_parser *htp, const char *data, size_t len) {
|
int htp_hdr_valcb(http_parser *htp, const char *data, size_t len) {
|
||||||
auto downstream = static_cast<Downstream *>(htp->data);
|
auto downstream = static_cast<Downstream *>(htp->data);
|
||||||
|
if (downstream->get_response_state() != Downstream::INITIAL) {
|
||||||
|
// ignore trailers
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (downstream->get_response_header_key_prev()) {
|
if (downstream->get_response_header_key_prev()) {
|
||||||
downstream->set_last_response_header_value(std::string(data, len));
|
downstream->set_last_response_header_value(std::string(data, len));
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -82,6 +82,10 @@ namespace {
|
||||||
int htp_hdr_keycb(http_parser *htp, const char *data, size_t len) {
|
int htp_hdr_keycb(http_parser *htp, const char *data, size_t len) {
|
||||||
auto upstream = static_cast<HttpsUpstream *>(htp->data);
|
auto upstream = static_cast<HttpsUpstream *>(htp->data);
|
||||||
auto downstream = upstream->get_downstream();
|
auto downstream = upstream->get_downstream();
|
||||||
|
if (downstream->get_request_state() != Downstream::INITIAL) {
|
||||||
|
// ignore trailers
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (downstream->get_request_header_key_prev()) {
|
if (downstream->get_request_header_key_prev()) {
|
||||||
downstream->append_last_request_header_key(data, len);
|
downstream->append_last_request_header_key(data, len);
|
||||||
} else {
|
} else {
|
||||||
|
@ -102,6 +106,10 @@ namespace {
|
||||||
int htp_hdr_valcb(http_parser *htp, const char *data, size_t len) {
|
int htp_hdr_valcb(http_parser *htp, const char *data, size_t len) {
|
||||||
auto upstream = static_cast<HttpsUpstream *>(htp->data);
|
auto upstream = static_cast<HttpsUpstream *>(htp->data);
|
||||||
auto downstream = upstream->get_downstream();
|
auto downstream = upstream->get_downstream();
|
||||||
|
if (downstream->get_request_state() != Downstream::INITIAL) {
|
||||||
|
// ignore trailers
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
if (downstream->get_request_header_key_prev()) {
|
if (downstream->get_request_header_key_prev()) {
|
||||||
downstream->set_last_request_header_value(std::string(data, len));
|
downstream->set_last_request_header_value(std::string(data, len));
|
||||||
} else {
|
} else {
|
||||||
|
|
Loading…
Reference in New Issue