diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-11-22 07:21:07 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2005-11-22 07:21:07 +0000 |
commit | f83afc56908b487f1d0d87d563eabf68c01b411c (patch) | |
tree | a7614bea8301779382a5c52eb15ad988191c1356 /src/send_message.c | |
parent | 6e181791b71430f018d8a78fd943b825349f1128 (diff) |
reduced memory usage on SMTP session.
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@771 ee746299-78ed-0310-b773-934348b2243d
Diffstat (limited to 'src/send_message.c')
-rw-r--r-- | src/send_message.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/src/send_message.c b/src/send_message.c index 8072622a..ab67e90a 100644 --- a/src/send_message.c +++ b/src/send_message.c @@ -451,7 +451,7 @@ static gint send_message_smtp(PrefsAccount *ac_prefs, GSList *to_list, FILE *fp) { Session *session; SMTPSession *smtp_session; - gchar *out_str; + FILE *out_fp; gushort port; SendProgressDialog *dialog; gchar buf[BUFFSIZE]; @@ -517,9 +517,17 @@ static gint send_message_smtp(PrefsAccount *ac_prefs, GSList *to_list, FILE *fp) smtp_session->to_list = to_list; smtp_session->cur_to = to_list; - out_str = get_outgoing_rfc2822_str(fp); - smtp_session->send_data = (guchar *)out_str; - smtp_session->send_data_len = strlen(out_str); + out_fp = get_outgoing_rfc2822_file(fp); + if (!out_fp) { + session_destroy(session); + return -1; + } + smtp_session->send_data_fp = out_fp; + smtp_session->send_data_len = get_left_file_size(out_fp); + if (smtp_session->send_data_len < 0) { + session_destroy(session); + return -1; + } #if USE_SSL port = ac_prefs->set_smtpport ? ac_prefs->smtpport : |