comparison src/mail/ngx_mail_smtp_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 fcd92ad76b7b
children da0a85e91587
comparison
equal deleted inserted replaced
7788:9ca8fb98ef1c 7789:ab6257dac2a8
447 } 447 }
448 448
449 if (s->out.len) { 449 if (s->out.len) {
450 ngx_log_debug0(NGX_LOG_DEBUG_MAIL, c->log, 0, "smtp send handler busy"); 450 ngx_log_debug0(NGX_LOG_DEBUG_MAIL, c->log, 0, "smtp send handler busy");
451 s->blocked = 1; 451 s->blocked = 1;
452
453 if (ngx_handle_read_event(c->read, 0) != NGX_OK) {
454 ngx_mail_close_connection(c);
455 return;
456 }
457
452 return; 458 return;
453 } 459 }
454 460
455 s->blocked = 0; 461 s->blocked = 0;
456 462