# HG changeset patch # User Igor Sysoev # Date 1082986801 0 # Node ID e0f3f238db09ff387153a7b7b581efbac8487c2e # Parent 8733703a37f33487953aa91c43892efc711f0a98 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 --- a/src/event/modules/ngx_poll_module.c +++ b/src/event/modules/ngx_poll_module.c @@ -404,7 +404,7 @@ int ngx_poll_process_events(ngx_cycle_t } #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 --- a/src/http/modules/ngx_http_gzip_filter.c +++ b/src/http/modules/ngx_http_gzip_filter.c @@ -591,15 +591,15 @@ static int ngx_http_gzip_body_filter(ngx 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 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 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 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 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 --- a/src/http/ngx_http_output_filter.c +++ b/src/http/ngx_http_output_filter.c @@ -58,6 +58,10 @@ ngx_int_t ngx_http_output_filter(ngx_htt 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 --- a/src/os/unix/ngx_process_cycle.c +++ b/src/os/unix/ngx_process_cycle.c @@ -273,7 +273,9 @@ void ngx_single_process_cycle(ngx_cycle_ { ngx_uint_t i; +#if 0 ngx_setproctitle("single worker process"); +#endif ngx_init_temp_number();