]> git.kaiwu.me - nginx.git/commitdiff
nginx-0.0.3-2004-04-26-17:40:01 import
authorIgor Sysoev <igor@sysoev.ru>
Mon, 26 Apr 2004 13:40:01 +0000 (13:40 +0000)
committerIgor Sysoev <igor@sysoev.ru>
Mon, 26 Apr 2004 13:40:01 +0000 (13:40 +0000)
src/event/modules/ngx_poll_module.c
src/http/modules/ngx_http_gzip_filter.c
src/http/ngx_http_output_filter.c
src/os/unix/ngx_process_cycle.c

index 3a2ca4c2a75f638bf58ad178ce8ad7b65eb96176..b40499d9da36ca34ebd2650bcc4e14e914b770c5 100644 (file)
@@ -404,7 +404,7 @@ int ngx_poll_process_events(ngx_cycle_t *cycle)
         }
 #endif
 
-        if (event_list[i].revents & (POLLERR|POLLNVAL)) {
+        if (event_list[i].revents & POLLNVAL) {
             ngx_log_error(NGX_LOG_ALERT, cycle->log, 0,
                           "poll() error fd:%d ev:%04X rev:%04X",
                           event_list[i].fd,
index f5cdb493e002ee2fbfd445c98513b4e2b3a981ff..b7b5abf961d409f715809e62dfd17994cf95a5bc 100644 (file)
@@ -591,15 +591,15 @@ static int ngx_http_gzip_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
                            ctx->in_hunk, ctx->in_hunk->pos);
 
 
-#if 0
-            if (!ctx->redo) {
+            if (ctx->zstream.next_in) {
                 ctx->in_hunk->pos = ctx->zstream.next_in;
-                ctx->out_hunk->last = ctx->zstream.next_out;
+
+                if (ctx->zstream.avail_in == 0) {
+                    ctx->zstream.next_in = NULL;
+                }
             }
-#else
-            ctx->in_hunk->pos = ctx->zstream.next_in;
+
             ctx->out_hunk->last = ctx->zstream.next_out;
-#endif
 
             if (ctx->zstream.avail_out == 0) {
                 ngx_alloc_link_and_set_hunk(cl, ctx->out_hunk, r->pool,
@@ -626,9 +626,7 @@ static int ngx_http_gzip_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
                 break;
             }
 
-            if (ctx->flush == Z_FINISH) {
-
-                /* rc == Z_STREAM_END */
+            if (rc == Z_STREAM_END) {
 
                 ctx->zin = ctx->zstream.total_in;
                 ctx->zout = 10 + ctx->zstream.total_out + 8;
@@ -642,8 +640,6 @@ static int ngx_http_gzip_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
 
                 ngx_pfree(r->pool, ctx->preallocated);
 
-                ctx->flush = Z_NO_FLUSH;
-
                 ngx_alloc_link_and_set_hunk(cl, ctx->out_hunk, r->pool,
                                             ngx_http_gzip_error(ctx));
                 *ctx->last_out = cl;
@@ -716,12 +712,6 @@ static int ngx_http_gzip_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
             return last;
         }
 
-#if 0
-        if (ctx->out == NULL && last != NGX_NONE) {
-            return last;
-        }
-#endif
-
         last = ngx_http_next_body_filter(r, ctx->out);
 
         if (last == NGX_ERROR) {
@@ -731,6 +721,10 @@ static int ngx_http_gzip_body_filter(ngx_http_request_t *r, ngx_chain_t *in)
         ngx_chain_update_chains(&ctx->free, &ctx->busy, &ctx->out,
                                 (ngx_hunk_tag_t) &ngx_http_gzip_filter_module);
         ctx->last_out = &ctx->out;
+
+        if (ctx->done) {
+            return last;
+        }
     }
 }
 
index 7c8986fb5f5614f661bfcef97011ff3d007baa69..ce226a971c61f93d6daed1b2b91776f41c1caf4f 100644 (file)
@@ -58,6 +58,10 @@ ngx_int_t ngx_http_output_filter(ngx_http_request_t *r, ngx_chain_t *in)
     ngx_output_chain_ctx_t         *ctx;
     ngx_http_output_filter_conf_t  *conf;
 
+    if (r->connection->write->error) {
+        return NGX_ERROR;
+    }
+
     ctx = ngx_http_get_module_ctx(r->main ? r->main : r,
                                             ngx_http_output_filter_module);
 
index 5f783035223ed999f656ceda831367871d130d4d..4a281f04381b029e2599ea439c4a38c6849461d9 100644 (file)
@@ -273,7 +273,9 @@ void ngx_single_process_cycle(ngx_cycle_t *cycle, ngx_master_ctx_t *ctx)
 {
     ngx_uint_t  i;
 
+#if 0
     ngx_setproctitle("single worker process");
+#endif
 
     ngx_init_temp_number();