summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorIgor Sysoev <igor@sysoev.ru>2007-07-29 17:29:06 +0000
committerIgor Sysoev <igor@sysoev.ru>2007-07-29 17:29:06 +0000
commit88bcb974231772d25950a62059e96e1287498d5c (patch)
treeff9c7809ee0b6e5e4325cd3496301b14a644cce9
parent567f8f61f73323f83fedba1a1e2879aa616da52d (diff)
downloadnginx-88bcb974231772d25950a62059e96e1287498d5c.tar.gz
nginx-88bcb974231772d25950a62059e96e1287498d5c.tar.bz2
r1343 merge:
fix case when client has closed connection but upstream buffer is not empty
-rw-r--r--src/mail/ngx_mail_proxy_module.c8
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;