summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--src/mail/ngx_mail_handler.c6
-rw-r--r--src/mail/ngx_mail_imap_handler.c10
-rw-r--r--src/mail/ngx_mail_pop3_handler.c6
-rw-r--r--src/mail/ngx_mail_smtp_handler.c8
4 files changed, 21 insertions, 9 deletions
diff --git a/src/mail/ngx_mail_handler.c b/src/mail/ngx_mail_handler.c
index 8f549a8d3..000865d2f 100644
--- a/src/mail/ngx_mail_handler.c
+++ b/src/mail/ngx_mail_handler.c
@@ -253,12 +253,6 @@ ngx_mail_init_session(ngx_connection_t *c)
return;
}
- ngx_add_timer(c->read, cscf->timeout);
-
- if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) {
- ngx_mail_close_connection(c);
- }
-
c->write->handler = ngx_mail_send;
ngx_mail_init_sessions[s->protocol](s, c);
diff --git a/src/mail/ngx_mail_imap_handler.c b/src/mail/ngx_mail_imap_handler.c
index 47a79c6d7..0a93a0789 100644
--- a/src/mail/ngx_mail_imap_handler.c
+++ b/src/mail/ngx_mail_imap_handler.c
@@ -45,11 +45,17 @@ ngx_mail_imap_init_session(ngx_mail_session_t *s, ngx_connection_t *c)
}
}
- c->read->handler = ngx_mail_imap_init_protocol;
-
s->out.len = sizeof(imap_greeting) - 1;
s->out.data = imap_greeting;
+ c->read->handler = ngx_mail_imap_init_protocol;
+
+ ngx_add_timer(c->read, cscf->timeout);
+
+ if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) {
+ ngx_mail_close_connection(c);
+ }
+
ngx_mail_send(c->write);
}
diff --git a/src/mail/ngx_mail_pop3_handler.c b/src/mail/ngx_mail_pop3_handler.c
index 708787128..31cbc2192 100644
--- a/src/mail/ngx_mail_pop3_handler.c
+++ b/src/mail/ngx_mail_pop3_handler.c
@@ -62,6 +62,12 @@ ngx_mail_pop3_init_session(ngx_mail_session_t *s, ngx_connection_t *c)
c->read->handler = ngx_mail_pop3_init_protocol;
+ ngx_add_timer(c->read, cscf->timeout);
+
+ if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) {
+ ngx_mail_close_connection(c);
+ }
+
ngx_mail_send(c->write);
}
diff --git a/src/mail/ngx_mail_smtp_handler.c b/src/mail/ngx_mail_smtp_handler.c
index 76637f92f..92be7fa83 100644
--- a/src/mail/ngx_mail_smtp_handler.c
+++ b/src/mail/ngx_mail_smtp_handler.c
@@ -41,9 +41,15 @@ ngx_mail_smtp_init_session(ngx_mail_session_t *s, ngx_connection_t *c)
}
}
+ s->out = cscf->smtp_greeting;
+
c->read->handler = ngx_mail_smtp_init_protocol;
- s->out = cscf->smtp_greeting;
+ ngx_add_timer(c->read, cscf->timeout);
+
+ if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) {
+ ngx_mail_close_connection(c);
+ }
ngx_mail_send(c->write);
}