Mercurial > hg > nginx
diff src/mail/ngx_mail_imap_handler.c @ 7789:ab6257dac2a8
Mail: added missing event handling after blocking events.
As long as a read event is blocked (ignored), ngx_handle_read_event()
needs to be called to make sure no further notifications will be
triggered when using level-triggered event methods, such as select() or
poll().
author | Maxim Dounin <mdounin@mdounin.ru> |
---|---|
date | Fri, 05 Mar 2021 17:16:16 +0300 |
parents | b2915d99ee8d |
children | da0a85e91587 |
line wrap: on
line diff
--- a/src/mail/ngx_mail_imap_handler.c Fri Mar 05 17:16:15 2021 +0300 +++ b/src/mail/ngx_mail_imap_handler.c Fri Mar 05 17:16:16 2021 +0300 @@ -123,6 +123,12 @@ if (s->out.len) { ngx_log_debug0(NGX_LOG_DEBUG_MAIL, c->log, 0, "imap send handler busy"); s->blocked = 1; + + if (ngx_handle_read_event(c->read, 0) != NGX_OK) { + ngx_mail_close_connection(c); + return; + } + return; }