Welcome! Log In Create A New Profile

Advanced

[nginx] svn commit: r4468 - trunk/src/http/modules

Anonymous User
February 13, 2012 10:22AM
Author: mdounin
Date: 2012-02-13 15:20:49 +0000 (Mon, 13 Feb 2012)
New Revision: 4468

Log:
Removed r->cache/r->cached dependencies in range filter.

This is a layering violation, use correct offset calculations instead.


Modified:
trunk/src/http/modules/ngx_http_range_filter_module.c

Modified: trunk/src/http/modules/ngx_http_range_filter_module.c
===================================================================
--- trunk/src/http/modules/ngx_http_range_filter_module.c 2012-02-13 11:08:05 UTC (rev 4467)
+++ trunk/src/http/modules/ngx_http_range_filter_module.c 2012-02-13 15:20:49 UTC (rev 4468)
@@ -595,16 +595,9 @@
buf = in->buf;

if (!buf->last_buf) {
+ start = ctx->offset;
+ last = ctx->offset + ngx_buf_size(buf);

- if (buf->in_file) {
- start = buf->file_pos + ctx->offset;
- last = buf->file_last + ctx->offset;
-
- } else {
- start = buf->pos - buf->start + ctx->offset;
- last = buf->last - buf->start + ctx->offset;
- }
-
range = ctx->ranges.elts;
for (i = 0; i < ctx->ranges.nelts; i++) {
if (start > range[i].start || last < range[i].end) {
@@ -716,7 +709,6 @@
ngx_http_range_multipart_body(ngx_http_request_t *r,
ngx_http_range_filter_ctx_t *ctx, ngx_chain_t *in)
{
- off_t body_start;
ngx_buf_t *b, *buf;
ngx_uint_t i;
ngx_chain_t *out, *hcl, *rcl, *dcl, **ll;
@@ -726,12 +718,6 @@
buf = in->buf;
range = ctx->ranges.elts;

-#if (NGX_HTTP_CACHE)
- body_start = r->cached ? r->cache->body_start : 0;
-#else
- body_start = 0;
-#endif
-
for (i = 0; i < ctx->ranges.nelts; i++) {

/*
@@ -792,13 +778,13 @@
b->file = buf->file;

if (buf->in_file) {
- b->file_pos = body_start + range[i].start;
- b->file_last = body_start + range[i].end;
+ b->file_pos = buf->file_pos + range[i].start;
+ b->file_last = buf->file_pos + range[i].end;
}

if (ngx_buf_in_memory(buf)) {
- b->pos = buf->start + (size_t) range[i].start;
- b->last = buf->start + (size_t) range[i].end;
+ b->pos = buf->pos + (size_t) range[i].start;
+ b->last = buf->pos + (size_t) range[i].end;
}

dcl = ngx_alloc_chain_link(r->pool);

_______________________________________________
nginx-devel mailing list
nginx-devel@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-devel
Subject Author Views Posted

[nginx] svn commit: r4468 - trunk/src/http/modules

Anonymous User 1254 February 13, 2012 10:22AM



Sorry, you do not have permission to post/reply in this forum.

Online Users

Guests: 289
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready