move event handling to protocol specific code,
it is required to support SMTP greeting delay
Igor Sysoev
14 years ago
252 | 252 |
return;
|
253 | 253 |
}
|
254 | 254 |
|
255 | |
ngx_add_timer(c->read, cscf->timeout);
|
256 | |
|
257 | |
if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) {
|
258 | |
ngx_mail_close_connection(c);
|
259 | |
}
|
260 | |
|
261 | 255 |
c->write->handler = ngx_mail_send;
|
262 | 256 |
|
263 | 257 |
ngx_mail_init_sessions[s->protocol](s, c);
|
44 | 44 |
}
|
45 | 45 |
}
|
46 | 46 |
|
47 | |
c->read->handler = ngx_mail_imap_init_protocol;
|
48 | |
|
49 | 47 |
s->out.len = sizeof(imap_greeting) - 1;
|
50 | 48 |
s->out.data = imap_greeting;
|
|
49 |
|
|
50 |
c->read->handler = ngx_mail_imap_init_protocol;
|
|
51 |
|
|
52 |
ngx_add_timer(c->read, cscf->timeout);
|
|
53 |
|
|
54 |
if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) {
|
|
55 |
ngx_mail_close_connection(c);
|
|
56 |
}
|
51 | 57 |
|
52 | 58 |
ngx_mail_send(c->write);
|
53 | 59 |
}
|
61 | 61 |
|
62 | 62 |
c->read->handler = ngx_mail_pop3_init_protocol;
|
63 | 63 |
|
|
64 |
ngx_add_timer(c->read, cscf->timeout);
|
|
65 |
|
|
66 |
if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) {
|
|
67 |
ngx_mail_close_connection(c);
|
|
68 |
}
|
|
69 |
|
64 | 70 |
ngx_mail_send(c->write);
|
65 | 71 |
}
|
66 | 72 |
|
40 | 40 |
}
|
41 | 41 |
}
|
42 | 42 |
|
|
43 |
s->out = cscf->smtp_greeting;
|
|
44 |
|
43 | 45 |
c->read->handler = ngx_mail_smtp_init_protocol;
|
44 | 46 |
|
45 | |
s->out = cscf->smtp_greeting;
|
|
47 |
ngx_add_timer(c->read, cscf->timeout);
|
|
48 |
|
|
49 |
if (ngx_handle_read_event(c->read, 0) == NGX_ERROR) {
|
|
50 |
ngx_mail_close_connection(c);
|
|
51 |
}
|
46 | 52 |
|
47 | 53 |
ngx_mail_send(c->write);
|
48 | 54 |
}
|