mirror of
https://github.com/nginx/nginx.git
synced 2024-12-04 22:09:01 +08:00
Upstream: Connection header processing.
This commit is contained in:
parent
4686f30a0c
commit
f84c69a301
@ -91,6 +91,8 @@ static ngx_int_t ngx_http_upstream_process_buffering(ngx_http_request_t *r,
|
|||||||
ngx_table_elt_t *h, ngx_uint_t offset);
|
ngx_table_elt_t *h, ngx_uint_t offset);
|
||||||
static ngx_int_t ngx_http_upstream_process_charset(ngx_http_request_t *r,
|
static ngx_int_t ngx_http_upstream_process_charset(ngx_http_request_t *r,
|
||||||
ngx_table_elt_t *h, ngx_uint_t offset);
|
ngx_table_elt_t *h, ngx_uint_t offset);
|
||||||
|
static ngx_int_t ngx_http_upstream_process_connection(ngx_http_request_t *r,
|
||||||
|
ngx_table_elt_t *h, ngx_uint_t offset);
|
||||||
static ngx_int_t
|
static ngx_int_t
|
||||||
ngx_http_upstream_process_transfer_encoding(ngx_http_request_t *r,
|
ngx_http_upstream_process_transfer_encoding(ngx_http_request_t *r,
|
||||||
ngx_table_elt_t *h, ngx_uint_t offset);
|
ngx_table_elt_t *h, ngx_uint_t offset);
|
||||||
@ -218,7 +220,7 @@ ngx_http_upstream_header_t ngx_http_upstream_headers_in[] = {
|
|||||||
offsetof(ngx_http_headers_out_t, accept_ranges), 1 },
|
offsetof(ngx_http_headers_out_t, accept_ranges), 1 },
|
||||||
|
|
||||||
{ ngx_string("Connection"),
|
{ ngx_string("Connection"),
|
||||||
ngx_http_upstream_ignore_header_line, 0,
|
ngx_http_upstream_process_connection, 0,
|
||||||
ngx_http_upstream_ignore_header_line, 0, 0 },
|
ngx_http_upstream_ignore_header_line, 0, 0 },
|
||||||
|
|
||||||
{ ngx_string("Keep-Alive"),
|
{ ngx_string("Keep-Alive"),
|
||||||
@ -3371,6 +3373,23 @@ ngx_http_upstream_process_charset(ngx_http_request_t *r, ngx_table_elt_t *h,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static ngx_int_t
|
||||||
|
ngx_http_upstream_process_connection(ngx_http_request_t *r, ngx_table_elt_t *h,
|
||||||
|
ngx_uint_t offset)
|
||||||
|
{
|
||||||
|
r->upstream->headers_in.connection = h;
|
||||||
|
|
||||||
|
if (ngx_strlcasestrn(h->value.data, h->value.data + h->value.len,
|
||||||
|
(u_char *) "close", 5 - 1)
|
||||||
|
!= NULL)
|
||||||
|
{
|
||||||
|
r->upstream->headers_in.connection_close = 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return NGX_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
static ngx_int_t
|
static ngx_int_t
|
||||||
ngx_http_upstream_process_transfer_encoding(ngx_http_request_t *r,
|
ngx_http_upstream_process_transfer_encoding(ngx_http_request_t *r,
|
||||||
ngx_table_elt_t *h, ngx_uint_t offset)
|
ngx_table_elt_t *h, ngx_uint_t offset)
|
||||||
|
@ -227,6 +227,7 @@ typedef struct {
|
|||||||
|
|
||||||
ngx_array_t cache_control;
|
ngx_array_t cache_control;
|
||||||
|
|
||||||
|
unsigned connection_close:1;
|
||||||
unsigned chunked:1;
|
unsigned chunked:1;
|
||||||
} ngx_http_upstream_headers_in_t;
|
} ngx_http_upstream_headers_in_t;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user