Mercurial > hg > nginx
diff src/http/ngx_http_write_filter.c @ 26:53cb81681040
nginx-0.0.1-2002-12-15-09:25:09 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Sun, 15 Dec 2002 06:25:09 +0000 |
parents | 77c7629a2627 |
children | 59e7c7f30d49 |
line wrap: on
line diff
--- a/src/http/ngx_http_write_filter.c +++ b/src/http/ngx_http_write_filter.c @@ -9,10 +9,23 @@ #include <ngx_http_write_filter.h> -static ngx_command_t ngx_http_write_filter_commands[]; +int ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *in); static void *ngx_http_write_filter_create_conf(ngx_pool_t *pool); + +static ngx_command_t ngx_http_write_filter_commands[] = { + + {"write_buffer", ngx_conf_set_size_slot, + offsetof(ngx_http_write_filter_conf_t, buffer_output), + NGX_HTTP_LOC_CONF, NGX_CONF_TAKE1, + "set write filter size to buffer output"}, + + {NULL} + +}; + + ngx_http_module_t ngx_http_write_filter_module = { NGX_HTTP_MODULE, @@ -23,19 +36,10 @@ ngx_http_module_t ngx_http_write_filter NULL, /* init module */ NULL, /* translate handler */ - NULL /* init output body filter */ -}; - - -static ngx_command_t ngx_http_write_filter_commands[] = { - - {"write_buffer", ngx_conf_set_size_slot, - offsetof(ngx_http_write_filter_conf_t, buffer_output), - NGX_HTTP_LOC_CONF, NGX_CONF_TAKE1, - "set write filter size to buffer output"}, - - {NULL} - + NULL, /* output header filter */ + NULL, /* next output header filter */ + ngx_http_write_filter, /* output body filter */ + NULL, /* next output body filter */ }; @@ -69,7 +73,7 @@ int ngx_http_write_filter(ngx_http_reque ch->hunk->type _ ch->hunk->pos.file _ ch->hunk->last.file - ch->hunk->pos.file); - if (ch->hunk->type & NGX_HUNK_FLUSH|NGX_HUNK_RECYCLED) + if (ch->hunk->type & (NGX_HUNK_FLUSH|NGX_HUNK_RECYCLED)) flush = size; if (ch->hunk->type & NGX_HUNK_LAST) @@ -90,7 +94,7 @@ int ngx_http_write_filter(ngx_http_reque ch->hunk->type _ ch->hunk->pos.file _ ch->hunk->last.file - ch->hunk->pos.file); - if (ch->hunk->type & NGX_HUNK_FLUSH|NGX_HUNK_RECYCLED) + if (ch->hunk->type & (NGX_HUNK_FLUSH|NGX_HUNK_RECYCLED)) flush = size; if (ch->hunk->type & NGX_HUNK_LAST) @@ -101,6 +105,8 @@ int ngx_http_write_filter(ngx_http_reque ngx_get_module_loc_conf(r->main ? r->main : r, ngx_http_write_filter_module); + ngx_log_debug(r->connection->log, "l:%d f:%d" _ last _ flush); + if (!last && flush == 0 && size < conf->buffer_output) return NGX_OK;