*) optimization: start value may be tested against end value only,
since end value here may not be greater than content_length.
end = content_length - 1;
}
- if (start >= content_length || start > end) {
- goto skip;
- }
-
if (end >= content_length) {
end = content_length;
found:
- range = ngx_array_push(&ctx->ranges);
- if (range == NULL) {
- return NGX_ERROR;
- }
-
- range->start = start;
- range->end = end;
+ if (start < end) {
+ range = ngx_array_push(&ctx->ranges);
+ if (range == NULL) {
+ return NGX_ERROR;
+ }
- size += end - start;
+ range->start = start;
+ range->end = end;
- skip:
+ size += end - start;
+ }
if (*p++ != ',') {
break;