Mercurial > hg > ngx_http_upstream_keepalive
diff ngx_http_upstream_keepalive_module.c @ 33:52ca695446d3
Keepalive: more connection validity checks.
Make sure to not cache connections with errors detected, as well as EOF
already read or pending data present. Call ngx_handle_read_event() for
event methods which need it.
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Wed, 31 Aug 2011 21:21:14 +0400 |
parents | 9aa0d263f2a7 |
children | 4574b97220fb |
line wrap: on
line diff
--- a/ngx_http_upstream_keepalive_module.c +++ b/ngx_http_upstream_keepalive_module.c @@ -337,7 +337,11 @@ ngx_http_upstream_free_keepalive_peer(ng if (kp->failed || c == NULL + || c->read->eof + || c->read->ready + || c->read->error || c->read->timedout + || c->write->error || c->write->timedout) { goto invalid; @@ -370,6 +374,10 @@ ngx_http_upstream_free_keepalive_peer(ng #endif + if (ngx_handle_read_event(c->read, 0) != NGX_OK) { + goto invalid; + } + ngx_log_debug1(NGX_LOG_DEBUG_HTTP, pc->log, 0, "free keepalive peer: saving connection %p", c);