diff --git a/src/shrpx_downstream.cc b/src/shrpx_downstream.cc index 64508033..44f5db9e 100644 --- a/src/shrpx_downstream.cc +++ b/src/shrpx_downstream.cc @@ -360,7 +360,7 @@ void append_last_header_key(bool key_prev, size_t &sum, Headers &headers, namespace { void append_last_header_value(bool key_prev, size_t &sum, Headers &headers, const char *data, size_t len) { - assert(!key_prev); + key_prev = false; sum += len; auto &item = headers.back(); item.value.append(data, len); @@ -455,11 +455,6 @@ void FieldStore::add_header(std::string name, std::string value) { std::move(value)); } -void FieldStore::set_last_header_value(const char *data, size_t len) { - shrpx::set_last_header_value(header_key_prev_, buffer_size_, headers_, data, - len); -} - void FieldStore::add_header(std::string name, std::string value, int16_t token) { http2::index_header(hdidx_, token, headers_.size()); @@ -504,11 +499,6 @@ void FieldStore::add_trailer(std::string name, std::string value) { std::move(value)); } -void FieldStore::set_last_trailer_value(const char *data, size_t len) { - shrpx::set_last_header_value(trailer_key_prev_, buffer_size_, trailers_, data, - len); -} - void FieldStore::append_last_trailer_key(const char *data, size_t len) { shrpx::append_last_header_key(trailer_key_prev_, buffer_size_, trailers_, data, len); diff --git a/src/shrpx_downstream.h b/src/shrpx_downstream.h index b4d84d79..b13c27e4 100644 --- a/src/shrpx_downstream.h +++ b/src/shrpx_downstream.h @@ -84,7 +84,6 @@ public: void append_last_header_key(const char *data, size_t len); void append_last_header_value(const char *data, size_t len); - void set_last_header_value(const char *data, size_t len); bool header_key_prev() const { return header_key_prev_; } @@ -103,8 +102,6 @@ public: void append_last_trailer_key(const char *data, size_t len); void append_last_trailer_value(const char *data, size_t len); - void set_last_trailer_value(const char *data, size_t len); - bool trailer_key_prev() const { return trailer_key_prev_; } // content-length, -1 if it is unknown. diff --git a/src/shrpx_https_upstream.cc b/src/shrpx_https_upstream.cc index 772df751..3d9bdc2d 100644 --- a/src/shrpx_https_upstream.cc +++ b/src/shrpx_https_upstream.cc @@ -179,17 +179,9 @@ int htp_hdr_valcb(http_parser *htp, const char *data, size_t len) { return -1; } if (downstream->get_request_state() == Downstream::INITIAL) { - if (req.fs.header_key_prev()) { - req.fs.set_last_header_value(data, len); - } else { - req.fs.append_last_header_value(data, len); - } + req.fs.append_last_header_value(data, len); } else { - if (req.fs.trailer_key_prev()) { - req.fs.set_last_trailer_value(data, len); - } else { - req.fs.append_last_trailer_value(data, len); - } + req.fs.append_last_trailer_value(data, len); } return 0; }