nginx-0.0.3-2004-04-26-17:40:01 import
diff --git a/src/event/modules/ngx_poll_module.c b/src/event/modules/ngx_poll_module.c
index 3a2ca4c..b40499d 100644
--- a/src/event/modules/ngx_poll_module.c
+++ b/src/event/modules/ngx_poll_module.c
@@ -404,7 +404,7 @@
}
#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,
diff --git a/src/http/modules/ngx_http_gzip_filter.c b/src/http/modules/ngx_http_gzip_filter.c
index f5cdb49..b7b5abf 100644
--- a/src/http/modules/ngx_http_gzip_filter.c
+++ b/src/http/modules/ngx_http_gzip_filter.c
@@ -591,15 +591,15 @@
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 @@
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 @@
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 @@
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 @@
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;
+ }
}
}
diff --git a/src/http/ngx_http_output_filter.c b/src/http/ngx_http_output_filter.c
index 7c8986f..ce226a9 100644
--- a/src/http/ngx_http_output_filter.c
+++ b/src/http/ngx_http_output_filter.c
@@ -58,6 +58,10 @@
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);
diff --git a/src/os/unix/ngx_process_cycle.c b/src/os/unix/ngx_process_cycle.c
index 5f78303..4a281f0 100644
--- a/src/os/unix/ngx_process_cycle.c
+++ b/src/os/unix/ngx_process_cycle.c
@@ -273,7 +273,9 @@
{
ngx_uint_t i;
+#if 0
ngx_setproctitle("single worker process");
+#endif
ngx_init_temp_number();