r1886 merge:
test response length in proxy/fastcgi_store
This commit is contained in:
parent
b811a5c388
commit
b80397bd24
2 changed files with 14 additions and 5 deletions
|
@ -1235,6 +1235,8 @@ ngx_http_upstream_process_header(ngx_event_t *rev)
|
|||
r->headers_out.status = u->headers_in.status_n;
|
||||
r->headers_out.status_line = u->headers_in.status_line;
|
||||
|
||||
u->headers_in.content_length_n = r->headers_out.content_length_n;
|
||||
|
||||
if (r->headers_out.content_length_n != -1) {
|
||||
u->length = (size_t) r->headers_out.content_length_n;
|
||||
|
||||
|
@ -1838,6 +1840,7 @@ ngx_http_upstream_process_downstream(ngx_http_request_t *r)
|
|||
static void
|
||||
ngx_http_upstream_process_body(ngx_event_t *ev)
|
||||
{
|
||||
ngx_temp_file_t *tf;
|
||||
ngx_event_pipe_t *p;
|
||||
ngx_connection_t *c, *downstream;
|
||||
ngx_http_log_ctx_t *ctx;
|
||||
|
@ -1932,18 +1935,22 @@ ngx_http_upstream_process_body(ngx_event_t *ev)
|
|||
|
||||
if (u->store) {
|
||||
|
||||
if (p->upstream_eof && u->headers_in.status_n == NGX_HTTP_OK) {
|
||||
tf = u->pipe->temp_file;
|
||||
|
||||
if (p->upstream_eof
|
||||
&& u->headers_in.status_n == NGX_HTTP_OK
|
||||
&& (u->headers_in.content_length_n == -1
|
||||
|| (u->headers_in.content_length_n == tf->offset)))
|
||||
{
|
||||
ngx_http_upstream_store(r, u);
|
||||
|
||||
} else if ((p->upstream_error
|
||||
|| (p->upstream_eof
|
||||
&& u->headers_in.status_n != NGX_HTTP_OK))
|
||||
&& u->pipe->temp_file->file.fd != NGX_INVALID_FILE)
|
||||
&& tf->file.fd != NGX_INVALID_FILE)
|
||||
{
|
||||
if (ngx_delete_file(u->pipe->temp_file->file.name.data)
|
||||
== NGX_FILE_ERROR)
|
||||
{
|
||||
if (ngx_delete_file(tf->file.name.data) == NGX_FILE_ERROR) {
|
||||
|
||||
ngx_log_error(NGX_LOG_CRIT, r->connection->log, ngx_errno,
|
||||
ngx_delete_file_n " \"%s\" failed",
|
||||
u->pipe->temp_file->file.name.data);
|
||||
|
|
|
@ -194,6 +194,8 @@ typedef struct {
|
|||
ngx_table_elt_t *content_encoding;
|
||||
#endif
|
||||
|
||||
off_t content_length_n;
|
||||
|
||||
ngx_array_t cache_control;
|
||||
} ngx_http_upstream_headers_in_t;
|
||||
|
||||
|
|
Loading…
Reference in a new issue