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;