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;