Browse Source

[core] remove unused r->content_length

(was parsed Content-Length sent by backend)
(might add back in future along with stricter validation of field value)
master
Glenn Strauss 8 months ago
parent
commit
cd2ff4202d
  1. 12
      src/http-header-glue.c
  2. 1
      src/request.h

12
src/http-header-glue.c

@ -257,7 +257,6 @@ void http_response_body_clear (request_st * const r, int preserve_length) {
CONST_STR_LEN("Transfer-Encoding"));
}
if (!preserve_length) { /* preserve for HEAD responses and no-content responses (204, 205, 304) */
r->content_length = -1;
if (light_btst(r->resp_htags, HTTP_HEADER_CONTENT_LENGTH)) {
http_header_response_unset(r, HTTP_HEADER_CONTENT_LENGTH,
CONST_STR_LEN("Content-Length"));
@ -286,7 +285,6 @@ static void http_response_header_clear (request_st * const r) {
* However, if http_response_process_headers() was called and response had
* Transfer-Encoding: chunked set, then other items need to be reset */
r->resp_send_chunked = 0;
r->content_length = -1;
r->resp_decode_chunked = 0;
if (r->gw_dechunk) {
free(r->gw_dechunk->b.ptr);
@ -344,8 +342,6 @@ static int http_response_parse_range(request_st * const r, buffer * const path,
start = 0;
end = sce->st.st_size - 1;
r->content_length = 0;
for (s = range, error = 0;
!error && *s && NULL != (minus = strchr(s, '-')); ) {
char *err;
@ -492,13 +488,10 @@ static int http_response_parse_range(request_st * const r, buffer * const path,
/* write END-OF-HEADER */
buffer_append_string_len(b, CONST_STR_LEN("\r\n\r\n"));
r->content_length += buffer_string_length(b);
chunkqueue_append_mem(&r->write_queue, CONST_BUF_LEN(b));
}
chunkqueue_append_file(&r->write_queue, path, start, end - start + 1);
r->content_length += end - start + 1;
}
buffer * const tb = r->tmp_buf;
@ -508,8 +501,6 @@ static int http_response_parse_range(request_st * const r, buffer * const path,
buffer_copy_string_len(tb, "\r\n--", 4);
buffer_append_string_len(tb, boundary, sizeof(boundary)-1);
buffer_append_string_len(tb, "--\r\n", 4);
r->content_length += buffer_string_length(tb);
chunkqueue_append_mem(&r->write_queue, CONST_BUF_LEN(tb));
/* set header-fields */
@ -742,7 +733,6 @@ static void http_response_xsendfile (request_st * const r, buffer * const path,
if (light_btst(r->resp_htags, HTTP_HEADER_CONTENT_LENGTH)) {
http_header_response_unset(r, HTTP_HEADER_CONTENT_LENGTH,
CONST_STR_LEN("Content-Length"));
r->content_length = -1;
}
buffer_urldecode_path(path);
@ -803,7 +793,6 @@ static void http_response_xsendfile2(request_st * const r, const buffer * const
if (light_btst(r->resp_htags, HTTP_HEADER_CONTENT_LENGTH)) {
http_header_response_unset(r, HTTP_HEADER_CONTENT_LENGTH,
CONST_STR_LEN("Content-Length"));
r->content_length = -1;
}
while (*pos) {
@ -1157,7 +1146,6 @@ static int http_response_process_headers(request_st * const r, http_response_opt
if (r->http_version >= HTTP_VERSION_2) continue;
break;
case HTTP_HEADER_CONTENT_LENGTH:
r->content_length = strtoul(value, NULL, 10);
if (*value == '+') ++value;
break;
case HTTP_HEADER_TRANSFER_ENCODING:

1
src/request.h

@ -164,7 +164,6 @@ struct request_st {
buffer server_name_buf;
/* response */
off_t content_length;
uint32_t resp_header_len;
uint64_t resp_htags; /*bitfield of flagged headers present in response*/
array resp_headers;

Loading…
Cancel
Save