2005-12-21 [colin] 1.9.100cvs101
authorColin Leroy <colin@colino.net>
Wed, 21 Dec 2005 17:28:49 +0000 (17:28 +0000)
committerColin Leroy <colin@colino.net>
Wed, 21 Dec 2005 17:28:49 +0000 (17:28 +0000)
* configure.ac
Fix DATADIRNAME
* COPYING
Fix missing section and explicit the exception better
* src/compose.c
Prevent mail from being lost without notice when an
SMTP error happens on trying to send an unmodified
drafted mail.
* src/send_message.c
* src/common/smtp.c
Fix password remembering when wrong, and add return
value checks where they should have been
* src/plugins/pgpcore/sylpheed.def
* src/plugins/pgpinline/sylpheed.def
* src/plugins/pgpmime/sylpheed.def
Add a few symbols needed

COPYING
ChangeLog
PATCHSETS
configure.ac
src/common/smtp.c
src/compose.c
src/plugins/pgpcore/sylpheed.def
src/plugins/pgpinline/sylpheed.def
src/plugins/pgpmime/sylpheed.def
src/send_message.c

diff --git a/COPYING b/COPYING
index 5b67f7b6a2623bc6a4321d2839eb6b07cda2608b..36af8274ca1d2f6f024b4745f02239ca81e5725b 100644 (file)
--- a/COPYING
+++ b/COPYING
@@ -1,8 +1,14 @@
 The code in this distribution is Copyright 1999-2005 by Hiroyuki Yamamoto
 and the Sylpheed-Claws team.
 
 The code in this distribution is Copyright 1999-2005 by Hiroyuki Yamamoto
 and the Sylpheed-Claws team.
 
-Specific permission is granted for the GPLed code in this distribition to
-be linked to OpenSSL without invoking GPL clause 2(b).
+As a special exception, the Sylpheed-Claws team gives permission to link 
+the code of its release of Sylpheed-Claws with the OpenSSL project's 
+"OpenSSL" library (or with modified versions of it that use the same 
+license as the "OpenSSL" library), and distribute the linked executables. 
+You must obey the GNU General Public License in all respects for all of the 
+code used other than "OpenSSL". If you modify this file, you may extend this 
+exception to your version of the file, but you are not obliged to do so. If 
+you do not wish to do so, delete this exception statement from your version. 
 
 -------------------------------------------------------------------------------
                    GNU GENERAL PUBLIC LICENSE
 
 -------------------------------------------------------------------------------
                    GNU GENERAL PUBLIC LICENSE
@@ -283,4 +289,65 @@ TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
 YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
 PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
 POSSIBILITY OF SUCH DAMAGES.
--------------------------------------------------------------------------------
+
+                   END OF TERMS AND CONDITIONS
+\f
+           How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+convey the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software; you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation; either version 2 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program; if not, write to the Free Software
+    Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+
+Also add information on how to contact you by electronic and paper mail.
+
+If the program is interactive, make it output a short notice like this
+when it starts in an interactive mode:
+
+    Gnomovision version 69, Copyright (C) year  name of author
+    Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, the commands you use may
+be called something other than `show w' and `show c'; they could even be
+mouse-clicks or menu items--whatever suits your program.
+
+You should also get your employer (if you work as a programmer) or your
+school, if any, to sign a "copyright disclaimer" for the program, if
+necessary.  Here is a sample; alter the names:
+
+  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
+  `Gnomovision' (which makes passes at compilers) written by James Hacker.
+
+  <signature of Ty Coon>, 1 April 1989
+  Ty Coon, President of Vice
+
+This General Public License does not permit incorporating your program into
+proprietary programs.  If your program is a subroutine library, you may
+consider it more useful to permit linking proprietary applications with the
+library.  If this is what you want to do, use the GNU Library General
+Public License instead of this License.
index 99769dd5ab1725c438bc6337cdc3002191e0c3ee..5f198348ae1c20bd37d0444c0043063b96650d0d 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,22 @@
+2005-12-21 [colin]     1.9.100cvs101
+
+       * configure.ac
+               Fix DATADIRNAME
+       * COPYING
+               Fix missing section and explicit the exception better
+       * src/compose.c
+               Prevent mail from being lost without notice when an
+               SMTP error happens on trying to send an unmodified
+               drafted mail.
+       * src/send_message.c
+       * src/common/smtp.c
+               Fix password remembering when wrong, and add return
+               value checks where they should have been
+       * src/plugins/pgpcore/sylpheed.def
+       * src/plugins/pgpinline/sylpheed.def
+       * src/plugins/pgpmime/sylpheed.def
+               Add a few symbols needed
+
 2005-12-21 [paul]      1.9.100cvs100
 
        * m4/codeset.m4
 2005-12-21 [paul]      1.9.100cvs100
 
        * m4/codeset.m4
index aed6c5d3adb63bdd54af3d7bd370a7a78d4c07ba..49b278f542960ee480a6b7c5a4e491ec04a04ebe 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.4.2.4 -r 1.4.2.5 po/sv.po;  ) > 1.9.100cvs98.patchset
 ( cvs diff -u -r 1.4.2.5 -r 1.4.2.6 po/sv.po;  ) > 1.9.100cvs99.patchset
 ( diff -u /dev/null m4/codeset.m4;  diff -u /dev/null m4/glibc21.m4;  diff -u /dev/null m4/intdiv0.m4;  diff -u /dev/null m4/inttypes-pri.m4;  diff -u /dev/null m4/inttypes.m4;  diff -u /dev/null m4/inttypes_h.m4;  diff -u /dev/null m4/isc-posix.m4;  diff -u /dev/null m4/lcmessage.m4;  diff -u /dev/null m4/stdint_h.m4;  diff -u /dev/null m4/uintmax_t.m4;  ) > 1.9.100cvs100.patchset
 ( cvs diff -u -r 1.4.2.4 -r 1.4.2.5 po/sv.po;  ) > 1.9.100cvs98.patchset
 ( cvs diff -u -r 1.4.2.5 -r 1.4.2.6 po/sv.po;  ) > 1.9.100cvs99.patchset
 ( diff -u /dev/null m4/codeset.m4;  diff -u /dev/null m4/glibc21.m4;  diff -u /dev/null m4/intdiv0.m4;  diff -u /dev/null m4/inttypes-pri.m4;  diff -u /dev/null m4/inttypes.m4;  diff -u /dev/null m4/inttypes_h.m4;  diff -u /dev/null m4/isc-posix.m4;  diff -u /dev/null m4/lcmessage.m4;  diff -u /dev/null m4/stdint_h.m4;  diff -u /dev/null m4/uintmax_t.m4;  ) > 1.9.100cvs100.patchset
+( cvs diff -u -r 1.654.2.1130 -r 1.654.2.1131 configure.ac;  cvs diff -u -r 1.5.10.1 -r 1.5.10.2 COPYING;  cvs diff -u -r 1.382.2.209 -r 1.382.2.210 src/compose.c;  cvs diff -u -r 1.17.2.24 -r 1.17.2.25 src/send_message.c;  cvs diff -u -r 1.11.2.14 -r 1.11.2.15 src/common/smtp.c;  cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/plugins/pgpcore/sylpheed.def;  cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/plugins/pgpinline/sylpheed.def;  cvs diff -u -r 1.1.2.1 -r 1.1.2.2 src/plugins/pgpmime/sylpheed.def;  ) > 1.9.100cvs101.patchset
index 21d7a835373066ee0e1b57849776a7983f9e85a1..b05709353d2c630968136f40353a154c20ebd4b3 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=100
 INTERFACE_AGE=0
 BINARY_AGE=0
 MICRO_VERSION=100
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=100
+EXTRA_VERSION=101
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
@@ -159,6 +159,11 @@ AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE", [Define text domain.])
 AM_GNU_GETTEXT_VERSION([0.14.5])
 AM_GNU_GETTEXT([external])
 
 AM_GNU_GETTEXT_VERSION([0.14.5])
 AM_GNU_GETTEXT([external])
 
+if test "x${DATADIRNAME}" = "x"; then
+  DATADIRNAME="share"
+  AC_SUBST(DATADIRNAME)
+fi
+
 localedir='${prefix}/${DATADIRNAME}/locale'
 AC_ARG_WITH(localedir,
        [  --with-localedir=DIR    Locale directory],
 localedir='${prefix}/${DATADIRNAME}/locale'
 AC_ARG_WITH(localedir,
        [  --with-localedir=DIR    Locale directory],
index a936a19faf533148b0ec6d849e55271fc7b346db..4dfe262512bf4b2edd0d1f271a85b82bc942f58b 100644 (file)
@@ -144,7 +144,8 @@ gint smtp_from(SMTPSession *session)
 
        g_free(mail_size);
 
 
        g_free(mail_size);
 
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf);
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf) < 0)
+               return SM_ERROR;
        log_print("%sSMTP> %s\n", (session->is_esmtp?"E":""), buf);
 
        return SM_OK;
        log_print("%sSMTP> %s\n", (session->is_esmtp?"E":""), buf);
 
        return SM_OK;
@@ -188,13 +189,15 @@ static gint smtp_auth_recv(SMTPSession *session, const gchar *msg)
                if (!strncmp(msg, "334 ", 4)) {
                        base64_encode(buf, session->user, strlen(session->user));
 
                if (!strncmp(msg, "334 ", 4)) {
                        base64_encode(buf, session->user, strlen(session->user));
 
-                       session_send_msg(SESSION(session), SESSION_MSG_NORMAL,
-                                        buf);
+                       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL,
+                                        buf) < 0)
+                               return SM_ERROR;
                        log_print("ESMTP> [USERID]\n");
                } else {
                        /* Server rejects AUTH */
                        log_print("ESMTP> [USERID]\n");
                } else {
                        /* Server rejects AUTH */
-                       session_send_msg(SESSION(session), SESSION_MSG_NORMAL,
-                                        "*");
+                       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL,
+                                        "*") < 0)
+                               return SM_ERROR;
                        log_print("ESMTP> *\n");
                }
                break;
                        log_print("ESMTP> *\n");
                }
                break;
@@ -226,21 +229,24 @@ static gint smtp_auth_recv(SMTPSession *session, const gchar *msg)
                        base64_encode(response64, response, strlen(response));
                        g_free(response);
 
                        base64_encode(response64, response, strlen(response));
                        g_free(response);
 
-                       session_send_msg(SESSION(session), SESSION_MSG_NORMAL,
-                                        response64);
+                       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL,
+                                        response64) < 0)
+                               return SM_ERROR;
                        log_print("ESMTP> %s\n", response64);
                        g_free(response64);
                } else {
                        /* Server rejects AUTH */
                        log_print("ESMTP> %s\n", response64);
                        g_free(response64);
                } else {
                        /* Server rejects AUTH */
-                       session_send_msg(SESSION(session), SESSION_MSG_NORMAL,
-                                        "*");
+                       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL,
+                                        "*") < 0)
+                               return SM_ERROR;
                        log_print("ESMTP> *\n");
                }
                break;
        case SMTPAUTH_DIGEST_MD5:
         default:
                /* stop smtp_auth when no correct authtype */
                        log_print("ESMTP> *\n");
                }
                break;
        case SMTPAUTH_DIGEST_MD5:
         default:
                /* stop smtp_auth when no correct authtype */
-               session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "*");
+               if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "*") < 0)
+                       return SM_ERROR;
                log_print("ESMTP> *\n");
                break;
        }
                log_print("ESMTP> *\n");
                break;
        }
@@ -260,7 +266,9 @@ static gint smtp_auth_login_user_recv(SMTPSession *session, const gchar *msg)
                /* Server rejects AUTH */
                g_snprintf(buf, sizeof(buf), "*");
 
                /* Server rejects AUTH */
                g_snprintf(buf, sizeof(buf), "*");
 
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf);
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf) < 0)
+               return SM_ERROR;
+
        log_print("ESMTP> [PASSWORD]\n");
 
        return SM_OK;
        log_print("ESMTP> [PASSWORD]\n");
 
        return SM_OK;
@@ -276,7 +284,8 @@ static gint smtp_ehlo(SMTPSession *session)
 
        g_snprintf(buf, sizeof(buf), "EHLO %s",
                   session->hostname ? session->hostname : get_domain_name());
 
        g_snprintf(buf, sizeof(buf), "EHLO %s",
                   session->hostname ? session->hostname : get_domain_name());
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf);
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf) < 0)
+               return SM_ERROR;
        log_print("ESMTP> %s\n", buf);
 
        return SM_OK;
        log_print("ESMTP> %s\n", buf);
 
        return SM_OK;
@@ -323,7 +332,8 @@ static gint smtp_starttls(SMTPSession *session)
 {
        session->state = SMTP_STARTTLS;
 
 {
        session->state = SMTP_STARTTLS;
 
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "STARTTLS");
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "STARTTLS") < 0)
+               return SM_ERROR;
        log_print("ESMTP> STARTTLS\n");
 
        return SM_OK;
        log_print("ESMTP> STARTTLS\n");
 
        return SM_OK;
@@ -334,7 +344,8 @@ static gint smtp_auth_cram_md5(SMTPSession *session)
        session->state = SMTP_AUTH;
        session->auth_type = SMTPAUTH_CRAM_MD5;
 
        session->state = SMTP_AUTH;
        session->auth_type = SMTPAUTH_CRAM_MD5;
 
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "AUTH CRAM-MD5");
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "AUTH CRAM-MD5") < 0)
+               return SM_ERROR;
        log_print("ESMTP> AUTH CRAM-MD5\n");
 
        return SM_OK;
        log_print("ESMTP> AUTH CRAM-MD5\n");
 
        return SM_OK;
@@ -383,7 +394,8 @@ static gint smtp_auth_plain(SMTPSession *session)
        a = buf + strlen(buf);
        base64_encode(a, b64buf, b64cnt);
 
        a = buf + strlen(buf);
        base64_encode(a, b64buf, b64cnt);
 
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf);
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf) < 0)
+               return SM_ERROR;
 
        log_print("ESMTP> [AUTH PLAIN]\n");
 
 
        log_print("ESMTP> [AUTH PLAIN]\n");
 
@@ -397,7 +409,8 @@ static gint smtp_auth_login(SMTPSession *session)
        session->state = SMTP_AUTH;
        session->auth_type = SMTPAUTH_LOGIN;
 
        session->state = SMTP_AUTH;
        session->auth_type = SMTPAUTH_LOGIN;
 
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "AUTH LOGIN");
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "AUTH LOGIN") < 0)
+               return SM_ERROR;
        log_print("ESMTP> AUTH LOGIN\n");
 
        return SM_OK;
        log_print("ESMTP> AUTH LOGIN\n");
 
        return SM_OK;
@@ -411,7 +424,8 @@ static gint smtp_helo(SMTPSession *session)
 
        g_snprintf(buf, sizeof(buf), "HELO %s",
                   session->hostname ? session->hostname : get_domain_name());
 
        g_snprintf(buf, sizeof(buf), "HELO %s",
                   session->hostname ? session->hostname : get_domain_name());
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf);
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf) < 0)
+               return SM_ERROR;
        log_print("SMTP> %s\n", buf);
 
        return SM_OK;
        log_print("SMTP> %s\n", buf);
 
        return SM_OK;
@@ -432,7 +446,8 @@ static gint smtp_rcpt(SMTPSession *session)
                g_snprintf(buf, sizeof(buf), "RCPT TO:%s", to);
        else
                g_snprintf(buf, sizeof(buf), "RCPT TO:<%s>", to);
                g_snprintf(buf, sizeof(buf), "RCPT TO:%s", to);
        else
                g_snprintf(buf, sizeof(buf), "RCPT TO:<%s>", to);
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf);
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, buf) < 0)
+               return SM_ERROR;
        log_print("SMTP> %s\n", buf);
 
        session->cur_to = session->cur_to->next;
        log_print("SMTP> %s\n", buf);
 
        session->cur_to = session->cur_to->next;
@@ -444,7 +459,8 @@ static gint smtp_data(SMTPSession *session)
 {
        session->state = SMTP_DATA;
 
 {
        session->state = SMTP_DATA;
 
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "DATA");
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "DATA") < 0)
+               return SM_ERROR;
        log_print("SMTP> DATA\n");
 
        return SM_OK;
        log_print("SMTP> DATA\n");
 
        return SM_OK;
@@ -460,18 +476,6 @@ static gint smtp_send_data(SMTPSession *session)
        return SM_OK;
 }
 
        return SM_OK;
 }
 
-#if 0
-static gint smtp_rset(SMTPSession *session)
-{
-       session->state = SMTP_RSET;
-
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, "RSET");
-       log_print("SMTP> RSET\n");
-
-       return SM_OK;
-}
-#endif
-
 static gint smtp_make_ready(SMTPSession *session)
 {
        session->state = SMTP_MAIL_SENT_OK;
 static gint smtp_make_ready(SMTPSession *session)
 {
        session->state = SMTP_MAIL_SENT_OK;
@@ -493,7 +497,8 @@ static gint smtp_eom(SMTPSession *session)
 {
        session->state = SMTP_EOM;
 
 {
        session->state = SMTP_EOM;
 
-       session_send_msg(SESSION(session), SESSION_MSG_NORMAL, ".");
+       if (session_send_msg(SESSION(session), SESSION_MSG_NORMAL, ".") < 0)
+               return SM_ERROR;
        log_print("SMTP> . (EOM)\n");
 
        return SM_OK;
        log_print("SMTP> . (EOM)\n");
 
        return SM_OK;
@@ -503,7 +508,8 @@ static gint smtp_session_recv_msg(Session *session, const gchar *msg)
 {
        SMTPSession *smtp_session = SMTP_SESSION(session);
        gboolean cont = FALSE;
 {
        SMTPSession *smtp_session = SMTP_SESSION(session);
        gboolean cont = FALSE;
-
+       gint ret = 0;
+       
        if (strlen(msg) < 4) {
                log_warning(_("bad SMTP response\n"));
                return -1;
        if (strlen(msg) < 4) {
                log_warning(_("bad SMTP response\n"));
                return -1;
@@ -576,15 +582,15 @@ static gint smtp_session_recv_msg(Session *session, const gchar *msg)
 #else
                if (smtp_session->user || smtp_session->is_esmtp)
 #endif
 #else
                if (smtp_session->user || smtp_session->is_esmtp)
 #endif
-                       smtp_ehlo(smtp_session);
+                       ret = smtp_ehlo(smtp_session);
                else
                else
-                       smtp_helo(smtp_session);
+                       ret = smtp_helo(smtp_session);
                break;
        case SMTP_HELO:
                break;
        case SMTP_HELO:
-               smtp_from(smtp_session);
+               ret = smtp_from(smtp_session);
                break;
        case SMTP_EHLO:
                break;
        case SMTP_EHLO:
-               smtp_ehlo_recv(smtp_session, msg);
+               ret = smtp_ehlo_recv(smtp_session, msg);
                if (cont == TRUE)
                        break;
                if (smtp_session->max_message_size > 0
                if (cont == TRUE)
                        break;
                if (smtp_session->max_message_size > 0
@@ -601,7 +607,7 @@ static gint smtp_session_recv_msg(Session *session, const gchar *msg)
 #if USE_OPENSSL
                if (session->ssl_type == SSL_STARTTLS &&
                    smtp_session->tls_init_done == FALSE) {
 #if USE_OPENSSL
                if (session->ssl_type == SSL_STARTTLS &&
                    smtp_session->tls_init_done == FALSE) {
-                       smtp_starttls(smtp_session);
+                       ret = smtp_starttls(smtp_session);
                        break;
                }
 #endif
                        break;
                }
 #endif
@@ -611,13 +617,13 @@ static gint smtp_session_recv_msg(Session *session, const gchar *msg)
                                if (session->ssl_type == SSL_NONE
                                &&  smtp_session->tls_init_done == FALSE
                                &&  (smtp_session->avail_auth_type & SMTPAUTH_TLS_AVAILABLE))
                                if (session->ssl_type == SSL_NONE
                                &&  smtp_session->tls_init_done == FALSE
                                &&  (smtp_session->avail_auth_type & SMTPAUTH_TLS_AVAILABLE))
-                                       smtp_starttls(smtp_session);
+                                       ret = smtp_starttls(smtp_session);
                                else
 #endif
                                else
 #endif
-                                       smtp_from(smtp_session);
+                                       ret = smtp_from(smtp_session);
                        }
                } else
                        }
                } else
-                       smtp_from(smtp_session);
+                       ret = smtp_from(smtp_session);
                break;
        case SMTP_STARTTLS:
 #if USE_OPENSSL
                break;
        case SMTP_STARTTLS:
 #if USE_OPENSSL
@@ -628,32 +634,32 @@ static gint smtp_session_recv_msg(Session *session, const gchar *msg)
                        return -1;
                }
                smtp_session->tls_init_done = TRUE;
                        return -1;
                }
                smtp_session->tls_init_done = TRUE;
-               smtp_ehlo(smtp_session);
+               ret = smtp_ehlo(smtp_session);
 #endif
                break;
        case SMTP_AUTH:
 #endif
                break;
        case SMTP_AUTH:
-               smtp_auth_recv(smtp_session, msg);
+               ret = smtp_auth_recv(smtp_session, msg);
                break;
        case SMTP_AUTH_LOGIN_USER:
                break;
        case SMTP_AUTH_LOGIN_USER:
-               smtp_auth_login_user_recv(smtp_session, msg);
+               ret = smtp_auth_login_user_recv(smtp_session, msg);
                break;
        case SMTP_AUTH_PLAIN:
        case SMTP_AUTH_LOGIN_PASS:
        case SMTP_AUTH_CRAM_MD5:
                break;
        case SMTP_AUTH_PLAIN:
        case SMTP_AUTH_LOGIN_PASS:
        case SMTP_AUTH_CRAM_MD5:
-               smtp_from(smtp_session);
+               ret = smtp_from(smtp_session);
                break;
        case SMTP_FROM:
                if (smtp_session->cur_to)
                break;
        case SMTP_FROM:
                if (smtp_session->cur_to)
-                       smtp_rcpt(smtp_session);
+                       ret = smtp_rcpt(smtp_session);
                break;
        case SMTP_RCPT:
                if (smtp_session->cur_to)
                break;
        case SMTP_RCPT:
                if (smtp_session->cur_to)
-                       smtp_rcpt(smtp_session);
+                       ret = smtp_rcpt(smtp_session);
                else
                else
-                       smtp_data(smtp_session);
+                       ret = smtp_data(smtp_session);
                break;
        case SMTP_DATA:
                break;
        case SMTP_DATA:
-               smtp_send_data(smtp_session);
+               ret = smtp_send_data(smtp_session);
                break;
        case SMTP_EOM:
                smtp_make_ready(smtp_session);
                break;
        case SMTP_EOM:
                smtp_make_ready(smtp_session);
@@ -668,14 +674,16 @@ static gint smtp_session_recv_msg(Session *session, const gchar *msg)
                return -1;
        }
 
                return -1;
        }
 
-       if (cont)
+       if (cont && ret == SM_OK)
                return session_recv_msg(session);
 
                return session_recv_msg(session);
 
-       return 0;
+       if (ret != SM_OK)
+               smtp_session->error_val = SM_ERROR;
+
+       return ret == SM_OK ? 0 : -1;
 }
 
 static gint smtp_session_send_data_finished(Session *session, guint len)
 {
 }
 
 static gint smtp_session_send_data_finished(Session *session, guint len)
 {
-       smtp_eom(SMTP_SESSION(session));
-       return 0;
+       return smtp_eom(SMTP_SESSION(session));
 }
 }
index 4277c4281bc376499e5b7026856740c2bbe578bf..cd06f1a19928dc4c49402ee26adf13593b278cec 100644 (file)
@@ -3766,6 +3766,7 @@ gint compose_send(Compose *compose)
                                   "the main window to retry."));
                if (prefs_common.send_dialog_mode == SEND_DIALOG_ALWAYS) {
                        compose->sending = FALSE;
                                   "the main window to retry."));
                if (prefs_common.send_dialog_mode == SEND_DIALOG_ALWAYS) {
                        compose->sending = FALSE;
+                       compose->modified = TRUE; 
                        compose_allow_user_actions (compose, TRUE);
                }
                return 0;
                        compose_allow_user_actions (compose, TRUE);
                }
                return 0;
@@ -3795,6 +3796,7 @@ gint compose_send(Compose *compose)
                                   "the main window to retry."));
                if (prefs_common.send_dialog_mode == SEND_DIALOG_ALWAYS) {
                        compose_allow_user_actions (compose, TRUE);
                                   "the main window to retry."));
                if (prefs_common.send_dialog_mode == SEND_DIALOG_ALWAYS) {
                        compose_allow_user_actions (compose, TRUE);
+                       compose->modified = TRUE; 
                        compose->sending = FALSE;               
                }
                return -1;
                        compose->sending = FALSE;               
                }
                return -1;
@@ -3805,6 +3807,7 @@ gint compose_send(Compose *compose)
 bail:
        compose_allow_user_actions (compose, TRUE);
        compose->sending = FALSE;
 bail:
        compose_allow_user_actions (compose, TRUE);
        compose->sending = FALSE;
+       compose->modified = TRUE; 
 
        return -1;
 }
 
        return -1;
 }
index 08791468e3c97850918e4bd0f168cdef59592a88..cc937916f8555fee33587e4a94200a036d2558f4 100644 (file)
@@ -28,3 +28,5 @@ prefs_set_default
 prefs_write_open
 prefs_write_param
 sylpheed_get_version
 prefs_write_open
 prefs_write_param
 sylpheed_get_version
+prefs_button_toggled
+debug_srcname
index 7b199fd05250a0a31f3e41b1953d5a4d0d902a17..dbb6339cecc64b1d21af73b968e06e9c54bbe07e 100644 (file)
@@ -25,3 +25,4 @@ sgpgme_sigstat_info_full
 sgpgme_sigstat_info_short
 sgpgme_verify_signature
 sylpheed_get_version
 sgpgme_sigstat_info_short
 sgpgme_verify_signature
 sylpheed_get_version
+debug_srcname
index 09dc17d239690ee82f24ae658e28f73b2e3a029e..7681a98a25a628e0d27ec8491c9e4989e2e51a98 100644 (file)
@@ -15,3 +15,4 @@ procmime_mimeinfo_parent
 procmime_scan_file
 procmime_write_mimeinfo
 sylpheed_get_version
 procmime_scan_file
 procmime_write_mimeinfo
 sylpheed_get_version
+debug_srcname
index b92bd820438c15db182f63db6fc2fc3629f03b3e..0e0ef04f34562c588b47317544229eea7631ade5 100644 (file)
@@ -232,8 +232,10 @@ gint send_message_smtp_full(PrefsAccount *ac_prefs, GSList *to_list, FILE *fp, g
                                                input_dialog_query_password
                                                        (ac_prefs->smtp_server,
                                                         smtp_session->user);
                                                input_dialog_query_password
                                                        (ac_prefs->smtp_server,
                                                         smtp_session->user);
-                                       if (!smtp_session->pass)
-                                               smtp_session->pass = g_strdup("");
+                                       if (!smtp_session->pass) {
+                                               session_destroy(session);
+                                               return -1;
+                                       }
                                        ac_prefs->tmp_smtp_pass =
                                                g_strdup(smtp_session->pass);
                                }
                                        ac_prefs->tmp_smtp_pass =
                                                g_strdup(smtp_session->pass);
                                }
@@ -249,8 +251,10 @@ gint send_message_smtp_full(PrefsAccount *ac_prefs, GSList *to_list, FILE *fp, g
                                                input_dialog_query_password
                                                        (ac_prefs->smtp_server,
                                                         smtp_session->user);
                                                input_dialog_query_password
                                                        (ac_prefs->smtp_server,
                                                         smtp_session->user);
-                                       if (!smtp_session->pass)
-                                               smtp_session->pass = g_strdup("");
+                                       if (!smtp_session->pass) {
+                                               session_destroy(session);
+                                               return -1;
+                                       }
                                        ac_prefs->tmp_pass =
                                                g_strdup(smtp_session->pass);
                                }
                                        ac_prefs->tmp_pass =
                                                g_strdup(smtp_session->pass);
                                }
@@ -278,8 +282,10 @@ gint send_message_smtp_full(PrefsAccount *ac_prefs, GSList *to_list, FILE *fp, g
                                  _("Con_tinue connecting"), 
                                  GTK_STOCK_CANCEL, NULL,
                                  FALSE, NULL, ALERT_WARNING,
                                  _("Con_tinue connecting"), 
                                  GTK_STOCK_CANCEL, NULL,
                                  FALSE, NULL, ALERT_WARNING,
-                                 G_ALERTALTERNATE) != G_ALERTDEFAULT)
+                                 G_ALERTALTERNATE) != G_ALERTDEFAULT) {
+                               session_destroy(session);
                                return -1;
                                return -1;
+                       }
                }
                port = ac_prefs->set_smtpport ? ac_prefs->smtpport : SMTP_PORT;
        #endif
                }
                port = ac_prefs->set_smtpport ? ac_prefs->smtpport : SMTP_PORT;
        #endif
@@ -355,6 +361,9 @@ gint send_message_smtp_full(PrefsAccount *ac_prefs, GSList *to_list, FILE *fp, g
                if (ac_prefs->smtp_userid && ac_prefs->tmp_smtp_pass) {
                        g_free(ac_prefs->tmp_smtp_pass);
                        ac_prefs->tmp_smtp_pass = NULL;
                if (ac_prefs->smtp_userid && ac_prefs->tmp_smtp_pass) {
                        g_free(ac_prefs->tmp_smtp_pass);
                        ac_prefs->tmp_smtp_pass = NULL;
+               } else if (ac_prefs->tmp_pass) {
+                       g_free(ac_prefs->tmp_pass);
+                       ac_prefs->tmp_pass = NULL;
                }
                ret = -1;
        } else if (SMTP_SESSION(session)->state == SMTP_MAIL_SENT_OK) {
                }
                ret = -1;
        } else if (SMTP_SESSION(session)->state == SMTP_MAIL_SENT_OK) {