2004-11-26 [colin] 0.9.12cvs173.1
authorColin Leroy <colin@colino.net>
Fri, 26 Nov 2004 09:22:06 +0000 (09:22 +0000)
committerColin Leroy <colin@colino.net>
Fri, 26 Nov 2004 09:22:06 +0000 (09:22 +0000)
* src/common/smtp.c
* src/common/smtp.h
Sync with HEAD

ChangeLog-gtk2.claws
PATCHSETS
configure.ac
src/common/smtp.c
src/common/smtp.h

index 5dedc2ba4bece1dfece9624cc2e0e43a17f2ff32..71ca068b451fae9a05ace568a7b3ca890f53113b 100644 (file)
@@ -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
index 454e14a0f55908ca32dc2a54ea24da33655ab3ab..5ae9696b59156d153bce891d3c651c2b819e1c78 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( 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
index e1e423920b676c23f162e0afecb4e87dd3ab9d36..d717991b8bf50c992b5c4959d519d49ef6abb414 100644 (file)
@@ -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
 
index 104d168fbe8a7e84aaf80ee53f8625590c6ea913..346c63e5f4eae85ffcb431e99fc3023b00976fcc 100644 (file)
@@ -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
index 0cc70cec1cdb330c719655ebb804581405190ea0..b813ae68cf366b9edaef343c8c4e62b322b4fe62 100644 (file)
@@ -111,6 +111,7 @@ struct _SMTPSession
 
        SMTPErrorValue error_val;
        gchar *error_msg;
+       gboolean is_esmtp;
 };
 
 Session *smtp_session_new      (void);