test response length in proxy/fastcgi_store
Igor Sysoev
14 years ago
1351 | 1351 | r->headers_out.status = u->headers_in.status_n; |
1352 | 1352 | r->headers_out.status_line = u->headers_in.status_line; |
1353 | 1353 | |
1354 | u->headers_in.content_length_n = r->headers_out.content_length_n; | |
1355 | ||
1354 | 1356 | if (r->headers_out.content_length_n != -1) { |
1355 | 1357 | u->length = (size_t) r->headers_out.content_length_n; |
1356 | 1358 | |
1954 | 1956 | static void |
1955 | 1957 | ngx_http_upstream_process_body(ngx_event_t *ev) |
1956 | 1958 | { |
1959 | ngx_temp_file_t *tf; | |
1957 | 1960 | ngx_event_pipe_t *p; |
1958 | 1961 | ngx_connection_t *c, *downstream; |
1959 | 1962 | ngx_http_log_ctx_t *ctx; |
2048 | 2051 | |
2049 | 2052 | if (u->store) { |
2050 | 2053 | |
2051 | if (p->upstream_eof && u->headers_in.status_n == NGX_HTTP_OK) { | |
2052 | ||
2054 | tf = u->pipe->temp_file; | |
2055 | ||
2056 | if (p->upstream_eof | |
2057 | && u->headers_in.status_n == NGX_HTTP_OK | |
2058 | && (u->headers_in.content_length_n == -1 | |
2059 | || (u->headers_in.content_length_n == tf->offset))) | |
2060 | { | |
2053 | 2061 | ngx_http_upstream_store(r, u); |
2054 | 2062 | |
2055 | 2063 | } else if ((p->upstream_error |
2056 | 2064 | || (p->upstream_eof |
2057 | 2065 | && u->headers_in.status_n != NGX_HTTP_OK)) |
2058 | && u->pipe->temp_file->file.fd != NGX_INVALID_FILE) | |
2066 | && tf->file.fd != NGX_INVALID_FILE) | |
2059 | 2067 | { |
2060 | if (ngx_delete_file(u->pipe->temp_file->file.name.data) | |
2061 | == NGX_FILE_ERROR) | |
2062 | { | |
2068 | if (ngx_delete_file(tf->file.name.data) == NGX_FILE_ERROR) { | |
2069 | ||
2063 | 2070 | ngx_log_error(NGX_LOG_CRIT, r->connection->log, ngx_errno, |
2064 | 2071 | ngx_delete_file_n " \"%s\" failed", |
2065 | 2072 | u->pipe->temp_file->file.name.data); |