Mercurial > hg > nginx
diff src/http/ngx_http_write_filter.c @ 41:59e7c7f30d49
nginx-0.0.1-2002-12-26-19:26:23 import
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Thu, 26 Dec 2002 16:26:23 +0000 |
parents | 53cb81681040 |
children | cd035a94e0b6 |
line wrap: on
line diff
--- a/src/http/ngx_http_write_filter.c +++ b/src/http/ngx_http_write_filter.c @@ -5,35 +5,30 @@ #include <ngx_event_write.h> #include <ngx_http.h> #include <ngx_http_config.h> -#include <ngx_http_output_filter.h> #include <ngx_http_write_filter.h> -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"}, + {ngx_string("write_buffer"), + NGX_CONF_TAKE1, + ngx_conf_set_size_slot, + NGX_HTTP_LOC_CONF, + offsetof(ngx_http_write_filter_conf_t, buffer_output)}, - {NULL} - + {ngx_string(""), 0, NULL, 0, 0} }; -ngx_http_module_t ngx_http_write_filter_module = { +ngx_http_module_t ngx_http_write_filter_module_ctx = { NGX_HTTP_MODULE, NULL, /* create server config */ ngx_http_write_filter_create_conf, /* create location config */ - ngx_http_write_filter_commands, /* module directives */ - NULL, /* init module */ NULL, /* translate handler */ NULL, /* output header filter */ @@ -43,6 +38,14 @@ ngx_http_module_t ngx_http_write_filter }; +ngx_module_t ngx_http_write_filter_module = { + &ngx_http_write_filter_module_ctx, /* module context */ + ngx_http_write_filter_commands, /* module directives */ + NGX_HTTP_MODULE_TYPE, /* module type */ + NULL /* init module */ +}; + + int ngx_http_write_filter(ngx_http_request_t *r, ngx_chain_t *in) { int last; @@ -53,12 +56,13 @@ int ngx_http_write_filter(ngx_http_reque ctx = (ngx_http_write_filter_ctx_t *) - ngx_get_module_ctx(r->main ? r->main : r, - ngx_http_write_filter_module); - if (ctx == NULL) + ngx_http_get_module_ctx(r->main ? r->main : r, + ngx_http_write_filter_module_ctx); + if (ctx == NULL) { ngx_http_create_ctx(r, ctx, - ngx_http_write_filter_module, + ngx_http_write_filter_module_ctx, sizeof(ngx_http_write_filter_ctx_t)); + } size = flush = 0; last = 0; @@ -73,11 +77,13 @@ 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) + if (ch->hunk->type & NGX_HUNK_LAST) { last = 1; + } } /* add new chain to existent one */ @@ -94,25 +100,29 @@ 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) + if (ch->hunk->type & NGX_HUNK_LAST) { last = 1; + } } conf = (ngx_http_write_filter_conf_t *) - ngx_get_module_loc_conf(r->main ? r->main : r, - ngx_http_write_filter_module); + ngx_http_get_module_loc_conf(r->main ? r->main : r, + ngx_http_write_filter_module_ctx); ngx_log_debug(r->connection->log, "l:%d f:%d" _ last _ flush); - if (!last && flush == 0 && size < conf->buffer_output) + if (!last && flush == 0 && size < conf->buffer_output) { return NGX_OK; + } chain = ngx_event_write(r->connection, ctx->out, flush); - if (chain == (ngx_chain_t *) -1) + if (chain == (ngx_chain_t *) -1) { return NGX_ERROR; + } ctx->out = chain;