aboutsummaryrefslogtreecommitdiff
path: root/src/http/modules/ngx_http_proxy_module.c
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@nginx.com>2013-12-11 21:30:38 +0400
committerValentin Bartenev <vbart@nginx.com>2013-12-11 21:30:38 +0400
commit2576530c5123da466f75169418386887748b99b1 (patch)
tree9d804e89743cfa64f3af0a207bd22727b92cfb70 /src/http/modules/ngx_http_proxy_module.c
parent7f54528ca07e49abd83d8c86c8125202dcf2798c (diff)
downloadnginx-2576530c5123da466f75169418386887748b99b1.tar.gz
nginx-2576530c5123da466f75169418386887748b99b1.zip
Use ngx_chain_get_free_buf() in pipe input filters.
No functional changes.
Diffstat (limited to 'src/http/modules/ngx_http_proxy_module.c')
-rw-r--r--src/http/modules/ngx_http_proxy_module.c48
1 files changed, 10 insertions, 38 deletions
diff --git a/src/http/modules/ngx_http_proxy_module.c b/src/http/modules/ngx_http_proxy_module.c
index 404607511..93469984c 100644
--- a/src/http/modules/ngx_http_proxy_module.c
+++ b/src/http/modules/ngx_http_proxy_module.c
@@ -1615,19 +1615,13 @@ ngx_http_proxy_copy_filter(ngx_event_pipe_t *p, ngx_buf_t *buf)
return NGX_OK;
}
- if (p->free) {
- cl = p->free;
- b = cl->buf;
- p->free = cl->next;
- ngx_free_chain(p->pool, cl);
-
- } else {
- b = ngx_alloc_buf(p->pool);
- if (b == NULL) {
- return NGX_ERROR;
- }
+ cl = ngx_chain_get_free_buf(p->pool, &p->free);
+ if (cl == NULL) {
+ return NGX_ERROR;
}
+ b = cl->buf;
+
ngx_memcpy(b, buf, sizeof(ngx_buf_t));
b->shadow = buf;
b->tag = p->tag;
@@ -1635,14 +1629,6 @@ ngx_http_proxy_copy_filter(ngx_event_pipe_t *p, ngx_buf_t *buf)
b->recycled = 1;
buf->shadow = b;
- cl = ngx_alloc_chain_link(p->pool);
- if (cl == NULL) {
- return NGX_ERROR;
- }
-
- cl->buf = b;
- cl->next = NULL;
-
ngx_log_debug1(NGX_LOG_DEBUG_EVENT, p->log, 0, "input buf #%d", b->num);
if (p->in) {
@@ -1707,19 +1693,13 @@ ngx_http_proxy_chunked_filter(ngx_event_pipe_t *p, ngx_buf_t *buf)
/* a chunk has been parsed successfully */
- if (p->free) {
- cl = p->free;
- b = cl->buf;
- p->free = cl->next;
- ngx_free_chain(p->pool, cl);
-
- } else {
- b = ngx_alloc_buf(p->pool);
- if (b == NULL) {
- return NGX_ERROR;
- }
+ cl = ngx_chain_get_free_buf(p->pool, &p->free);
+ if (cl == NULL) {
+ return NGX_ERROR;
}
+ b = cl->buf;
+
ngx_memzero(b, sizeof(ngx_buf_t));
b->pos = buf->pos;
@@ -1732,14 +1712,6 @@ ngx_http_proxy_chunked_filter(ngx_event_pipe_t *p, ngx_buf_t *buf)
*prev = b;
prev = &b->shadow;
- cl = ngx_alloc_chain_link(p->pool);
- if (cl == NULL) {
- return NGX_ERROR;
- }
-
- cl->buf = b;
- cl->next = NULL;
-
if (p->in) {
*p->last_in = cl;
} else {