Mercurial > hg > nginx
diff src/http/modules/ngx_http_range_filter.c @ 165:894a01c6aea3
nginx-0.0.1-2003-10-29-20:39:05 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Wed, 29 Oct 2003 17:39:05 +0000 |
parents | 84036764e215 |
children | 4db54fdbcbe7 |
line wrap: on
line diff
--- a/src/http/modules/ngx_http_range_filter.c +++ b/src/http/modules/ngx_http_range_filter.c @@ -198,9 +198,14 @@ static int ngx_http_range_header_filter( r->headers_out.status = rc; r->headers_out.ranges.nelts = 0; - ngx_test_null(r->headers_out.content_range, - ngx_push_table(r->headers_out.headers), - NGX_ERROR); + if (!(r->headers_out.content_range = + ngx_http_add_header(&r->headers_out, ngx_http_headers_out))) + { + return NGX_ERROR; + } + + r->headers_out.content_range->key.len = sizeof("Content-Range") - 1; + r->headers_out.content_range->key.data = "Content-Range"; ngx_test_null(r->headers_out.content_range->value.data, ngx_palloc(r->pool, 8 + 20 + 1), @@ -212,7 +217,10 @@ static int ngx_http_range_header_filter( r->headers_out.content_length_n); r->headers_out.content_length_n = -1; - r->headers_out.content_length = NULL; + if (r->headers_out.content_length) { + r->headers_out.content_length->key.len = 0; + r->headers_out.content_length = NULL; + } return rc; @@ -220,9 +228,15 @@ static int ngx_http_range_header_filter( r->headers_out.status = NGX_HTTP_PARTIAL_CONTENT; if (r->headers_out.ranges.nelts == 1) { - ngx_test_null(r->headers_out.content_range, - ngx_push_table(r->headers_out.headers), - NGX_ERROR); + + if (!(r->headers_out.content_range = + ngx_http_add_header(&r->headers_out, ngx_http_headers_out))) + { + return NGX_ERROR; + } + + r->headers_out.content_range->key.len = sizeof("Content-Range") - 1; + r->headers_out.content_range->key.data = "Content-Range"; ngx_test_null(r->headers_out.content_range->value.data, ngx_palloc(r->pool, 6 + 20 + 1 + 20 + 1 + 20 + 1), @@ -243,9 +257,12 @@ static int ngx_http_range_header_filter( #if 0 /* TODO: what if no content_type ?? */ - ngx_test_null(r->headers_out.content_type, - ngx_push_table(r->headers_out.headers), - NGX_ERROR); + + if (!(r->headers_out.content_type = + ngx_http_add_header(&r->headers_out, ngx_http_headers_out))) + { + return NGX_ERROR; + } #endif ngx_http_create_ctx(r, ctx, ngx_http_range_filter_module,