aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2012-07-07 21:16:21 +0000
committerMaxim Dounin <mdounin@mdounin.ru>2012-07-07 21:16:21 +0000
commit63d7ab16ff18b966674b1f7db0601a93ce9f252a (patch)
treed7256551223dd7e94c9e41da622853d2a95c92ce /src
parent8aaf9d35b785ea887adc020789ba162804fad869 (diff)
downloadnginx-63d7ab16ff18b966674b1f7db0601a93ce9f252a.tar.gz
nginx-63d7ab16ff18b966674b1f7db0601a93ce9f252a.zip
Fixed If-Range with unknown last modified time.
If modification time isn't known, skip range processing and return full entity body instead of just ignoring If-Range. Ignoring If-Range isn't safe as client will assume entity wasn't changed since time specified.
Diffstat (limited to 'src')
-rw-r--r--src/http/modules/ngx_http_range_filter_module.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/http/modules/ngx_http_range_filter_module.c b/src/http/modules/ngx_http_range_filter_module.c
index 0eaeff915..329f83d6f 100644
--- a/src/http/modules/ngx_http_range_filter_module.c
+++ b/src/http/modules/ngx_http_range_filter_module.c
@@ -174,7 +174,11 @@ ngx_http_range_header_filter(ngx_http_request_t *r)
goto next_filter;
}
- if (r->headers_in.if_range && r->headers_out.last_modified_time != -1) {
+ if (r->headers_in.if_range) {
+
+ if (r->headers_out.last_modified_time == (time_t) -1) {
+ goto next_filter;
+ }
if_range = ngx_http_parse_time(r->headers_in.if_range->value.data,
r->headers_in.if_range->value.len);