[nginx] Range filter: allowed ranges on empty files (ticket #1031).
Maxim Dounin
mdounin at mdounin.ru
Mon Jun 26 22:58:34 UTC 2017
details: http://hg.nginx.org/nginx/rev/aeaac3ccee4f
branches:
changeset: 7043:aeaac3ccee4f
user: Maxim Dounin <mdounin at mdounin.ru>
date: Tue Jun 27 00:53:46 2017 +0300
description:
Range filter: allowed ranges on empty files (ticket #1031).
As per RFC 2616 / RFC 7233, any range request to an empty file
is expected to result in 416 Range Not Satisfiable response, as
there cannot be a "byte-range-spec whose first-byte-pos is less
than the current length of the entity-body". On the other hand,
this makes use of byte-range requests inconvenient in some cases,
as reported for the slice module here:
http://mailman.nginx.org/pipermail/nginx-devel/2017-June/010177.html
This commit changes range filter to instead return 200 if the file
is empty and the range requested starts at 0.
diffstat:
src/http/modules/ngx_http_range_filter_module.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)
diffs (13 lines):
diff --git a/src/http/modules/ngx_http_range_filter_module.c b/src/http/modules/ngx_http_range_filter_module.c
--- a/src/http/modules/ngx_http_range_filter_module.c
+++ b/src/http/modules/ngx_http_range_filter_module.c
@@ -382,6 +382,9 @@ ngx_http_range_parse(ngx_http_request_t
if (ranges-- == 0) {
return NGX_DECLINED;
}
+
+ } else if (start == 0) {
+ return NGX_DECLINED;
}
if (*p++ != ',') {
More information about the nginx-devel
mailing list