summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mail/ngx_mail_proxy_module.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/mail/ngx_mail_proxy_module.c b/src/mail/ngx_mail_proxy_module.c
index 06679d4e0..efed9ab3e 100644
--- a/src/mail/ngx_mail_proxy_module.c
+++ b/src/mail/ngx_mail_proxy_module.c
@@ -327,7 +327,9 @@ ngx_mail_proxy_pop3_handler(ngx_event_t *rev)
c->log->action = NULL;
ngx_log_error(NGX_LOG_INFO, c->log, 0, "client logged in");
- if (s->buffer->pos < s->buffer->last) {
+ if (s->buffer->pos < s->buffer->last
+ || s->connection->read->ready)
+ {
ngx_post_event(c->write, &ngx_posted_events);
}
@@ -486,7 +488,9 @@ ngx_mail_proxy_imap_handler(ngx_event_t *rev)
c->log->action = NULL;
ngx_log_error(NGX_LOG_INFO, c->log, 0, "client logged in");
- if (s->buffer->pos < s->buffer->last) {
+ if (s->buffer->pos < s->buffer->last
+ || s->connection->read->ready)
+ {
ngx_post_event(c->write, &ngx_posted_events);
}
@@ -821,7 +825,9 @@ ngx_mail_proxy_smtp_handler(ngx_event_t *rev)
c->log->action = NULL;
ngx_log_error(NGX_LOG_INFO, c->log, 0, "client logged in");
- if (s->buffer->pos < s->buffer->last) {
+ if (s->buffer->pos < s->buffer->last
+ || s->connection->read->ready)
+ {
ngx_post_event(c->write, &ngx_posted_events);
}