diff options
author | Igor Sysoev <igor@sysoev.ru> | 2007-07-24 18:08:04 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2007-07-24 18:08:04 +0000 |
commit | 1931d87cca802b6a043e95e6d8d7a1de3a2a0628 (patch) | |
tree | c89db4b6e4f27f63fc33a7857e738031800b673e | |
parent | 32b787560ac2d7bd4b15fe2d8d6a4786e00b96e3 (diff) | |
download | nginx-1931d87cca802b6a043e95e6d8d7a1de3a2a0628.tar.gz nginx-1931d87cca802b6a043e95e6d8d7a1de3a2a0628.zip |
fix case when client has closed connection but upstream buffer is not empty
-rw-r--r-- | src/mail/ngx_mail_proxy_module.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/mail/ngx_mail_proxy_module.c b/src/mail/ngx_mail_proxy_module.c index 894c01d04..ae2fc4c38 100644 --- a/src/mail/ngx_mail_proxy_module.c +++ b/src/mail/ngx_mail_proxy_module.c @@ -866,9 +866,11 @@ ngx_mail_proxy_handler(ngx_event_t *ev) c->log->action = "proxying"; - if ((s->connection->read->eof || s->proxy->upstream.connection->read->eof) - && s->buffer->pos == s->buffer->last - && s->proxy->buffer->pos == s->proxy->buffer->last) + if ((s->connection->read->eof && s->buffer->pos == s->buffer->last) + || (s->proxy->upstream.connection->read->eof + && s->proxy->buffer->pos == s->proxy->buffer->last) + || (s->connection->read->eof + && s->proxy->upstream.connection->read->eof)) { action = c->log->action; c->log->action = NULL; |