summaryrefslogtreecommitdiffstats
path: root/src/smtp_proto.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@rambler-co.ru>2010-06-18 18:18:20 +0400
committerVsevolod Stakhov <vsevolod@rambler-co.ru>2010-06-18 18:18:20 +0400
commit7ac1c6efb3361614aa68aa31494346903cd27fcc (patch)
treee687be443263b75895f3ccd38c89d0375abb0fef /src/smtp_proto.c
parentda8c2bff3fb4b959ceb4ce5c8b72d6e83ec81f03 (diff)
downloadrspamd-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.c7
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;