Mercurial > hg > nginx
comparison 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 |
comparison
equal
deleted
inserted
replaced
7788:9ca8fb98ef1c | 7789:ab6257dac2a8 |
---|---|
121 } | 121 } |
122 | 122 |
123 if (s->out.len) { | 123 if (s->out.len) { |
124 ngx_log_debug0(NGX_LOG_DEBUG_MAIL, c->log, 0, "imap send handler busy"); | 124 ngx_log_debug0(NGX_LOG_DEBUG_MAIL, c->log, 0, "imap send handler busy"); |
125 s->blocked = 1; | 125 s->blocked = 1; |
126 | |
127 if (ngx_handle_read_event(c->read, 0) != NGX_OK) { | |
128 ngx_mail_close_connection(c); | |
129 return; | |
130 } | |
131 | |
126 return; | 132 return; |
127 } | 133 } |
128 | 134 |
129 s->blocked = 0; | 135 s->blocked = 0; |
130 | 136 |