From f69d8e55a0a3b1bf0075ea7bd7806b00e676153d Mon Sep 17 00:00:00 2001 From: Colin Leroy Date: Fri, 26 Nov 2004 09:22:06 +0000 Subject: [PATCH 1/1] 2004-11-26 [colin] 0.9.12cvs173.1 * src/common/smtp.c * src/common/smtp.h Sync with HEAD --- ChangeLog-gtk2.claws | 6 ++++++ PATCHSETS | 1 + configure.ac | 2 +- src/common/smtp.c | 24 +++++++++++++++++++----- src/common/smtp.h | 1 + 5 files changed, 28 insertions(+), 6 deletions(-) diff --git a/ChangeLog-gtk2.claws b/ChangeLog-gtk2.claws index 5dedc2ba4..71ca068b4 100644 --- a/ChangeLog-gtk2.claws +++ b/ChangeLog-gtk2.claws @@ -1,3 +1,9 @@ +2004-11-26 [colin] 0.9.12cvs173.1 + + * src/common/smtp.c + * src/common/smtp.h + Sync with HEAD + 2004-11-24 [colin] 0.9.12cvs172.1 * src/plugins/pgpmime/pgpmime.c diff --git a/PATCHSETS b/PATCHSETS index 454e14a0f..5ae9696b5 100644 --- a/PATCHSETS +++ b/PATCHSETS @@ -262,3 +262,4 @@ ( cvs diff -u -r 1.1.2.6 -r 1.1.2.7 src/plugins/pgpmime/plugin.c; cvs diff -u -r 1.4.2.1 -r 1.4.2.2 src/plugins/trayicon/Makefile.am; cvs diff -u -r 0 -r 1 src/plugins/trayicon/newmarkedmail.xpm; cvs diff -u -r 1.14.2.12 -r 1.14.2.13 src/plugins/trayicon/trayicon.c; cvs diff -u -r 0 -r 1 src/plugins/trayicon/unreadmarkedmail.xpm; ) > 0.9.12cvs169.1.patchset ( cvs diff -u -r 1.1.2.12 -r 1.1.2.13 src/plugins/pgpmime/pgpmime.c; ) > 0.9.12cvs171.1.patchset ( cvs diff -u -r 1.1.2.13 -r 1.1.2.14 src/plugins/pgpmime/pgpmime.c; ) > 0.9.12cvs172.1.patchset +( cvs diff -u -r 1.11.2.5 -r 1.11.2.6 src/common/smtp.c; cvs diff -u -r 1.6.2.2 -r 1.6.2.3 src/common/smtp.h; ) > 0.9.12cvs173.1.patchset diff --git a/configure.ac b/configure.ac index e1e423920..d717991b8 100644 --- a/configure.ac +++ b/configure.ac @@ -11,7 +11,7 @@ MINOR_VERSION=9 MICRO_VERSION=12 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=172 +EXTRA_VERSION=173 EXTRA_RELEASE= EXTRA_GTK2_VERSION=.1 diff --git a/src/common/smtp.c b/src/common/smtp.c index 104d168fb..346c63e5f 100644 --- a/src/common/smtp.c +++ b/src/common/smtp.c @@ -119,18 +119,29 @@ static void smtp_session_destroy(Session *session) static gint smtp_from(SMTPSession *session) { gchar buf[MSGBUFSIZE]; + gchar *mail_size = NULL; g_return_val_if_fail(session->from != NULL, SM_ERROR); session->state = SMTP_FROM; + + if (session->is_esmtp) + mail_size = g_strdup_printf(" SIZE=%d", session->send_data_len); + else + mail_size = g_strdup(""); + if (strchr(session->from, '<')) - g_snprintf(buf, sizeof(buf), "MAIL FROM:%s", session->from); + g_snprintf(buf, sizeof(buf), "MAIL FROM:%s%s", session->from, + mail_size); else - g_snprintf(buf, sizeof(buf), "MAIL FROM:<%s>", session->from); + g_snprintf(buf, sizeof(buf), "MAIL FROM:<%s>%s", session->from, + mail_size); + + g_free(mail_size); session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf); - log_print("SMTP> %s\n", buf); + log_print("%sSMTP> %s\n", (session->is_esmtp?"E":""), buf); return SM_OK; } @@ -481,11 +492,14 @@ static gint smtp_session_recv_msg(Session *session, const gchar *msg) switch (smtp_session->state) { case SMTP_READY: + if (strstr(msg, "ESMTP")) + smtp_session->is_esmtp = TRUE; case SMTP_CONNECTED: #if USE_OPENSSL - if (smtp_session->user || session->ssl_type != SSL_NONE) + if (smtp_session->user || session->ssl_type != SSL_NONE || + smtp_session->is_esmtp) #else - if (smtp_session->user) + if (smtp_session->user || smtp_session->is_esmtp) #endif smtp_ehlo(smtp_session); else diff --git a/src/common/smtp.h b/src/common/smtp.h index 0cc70cec1..b813ae68c 100644 --- a/src/common/smtp.h +++ b/src/common/smtp.h @@ -111,6 +111,7 @@ struct _SMTPSession SMTPErrorValue error_val; gchar *error_msg; + gboolean is_esmtp; }; Session *smtp_session_new (void); -- 2.25.1