diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2010-06-18 18:18:20 +0400 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2010-06-18 18:18:20 +0400 |
commit | 7ac1c6efb3361614aa68aa31494346903cd27fcc (patch) | |
tree | e687be443263b75895f3ccd38c89d0375abb0fef /src/smtp_proto.c | |
parent | da8c2bff3fb4b959ceb4ce5c8b72d6e83ec81f03 (diff) | |
download | rspamd-7ac1c6efb3361614aa68aa31494346903cd27fcc.tar.gz rspamd-7ac1c6efb3361614aa68aa31494346903cd27fcc.zip |
* Some performance improvements to IO dispatcher (do not drain the whole buffer after a single line readed)
* Fix smtp data input
Diffstat (limited to 'src/smtp_proto.c')
-rw-r--r-- | src/smtp_proto.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/smtp_proto.c b/src/smtp_proto.c index 0eef4ec17..b80573276 100644 --- a/src/smtp_proto.c +++ b/src/smtp_proto.c @@ -380,7 +380,7 @@ smtp_upstream_write_socket (void *arg) if (session->upstream_state == SMTP_STATE_IN_SENDFILE) { session->upstream_state = SMTP_STATE_END; - return rspamd_dispatcher_write (session->upstream_dispatcher, DATA_END_TRAILER, sizeof (DATA_END_TRAILER) - 1, FALSE, TRUE); + return rspamd_dispatcher_write (session->upstream_dispatcher, CRLF DATA_END_TRAILER, sizeof (CRLF DATA_END_TRAILER) - 1, FALSE, TRUE); } return TRUE; @@ -567,9 +567,8 @@ smtp_upstream_read_socket (f_str_t * in, void *arg) rspamd_dispatcher_restore (session->dispatcher); rspamd_dispatcher_write (session->dispatcher, session->error, 0, FALSE, TRUE); rspamd_dispatcher_pause (session->upstream_dispatcher); - rspamd_set_dispatcher_policy (session->dispatcher, BUFFER_ANY, 0); - session->data_idx = 0; - memset (session->data_end, 0, sizeof (session->data_end)); + rspamd_set_dispatcher_policy (session->dispatcher, BUFFER_LINE, 0); + session->dispatcher->strip_eol = FALSE; return TRUE; } break; |