diff options
author | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2007-07-20 04:38:56 +0000 |
---|---|---|
committer | hiro <hiro@ee746299-78ed-0310-b773-934348b2243d> | 2007-07-20 04:38:56 +0000 |
commit | 9fff27c6dd65ad4995fa08bce2ff8daf268e5d62 (patch) | |
tree | 087b6c5b718e04cb748e95f62434730ba768fe4b | |
parent | c53d8de733d96c2ab089b582814e94cc0c3a45da (diff) |
ignore errors right after QUIT (workaround for Gmail SMTP server).
git-svn-id: svn://sylpheed.sraoss.jp/sylpheed/trunk@1873 ee746299-78ed-0310-b773-934348b2243d
-rw-r--r-- | ChangeLog | 7 | ||||
-rw-r--r-- | ChangeLog.ja | 7 | ||||
-rw-r--r-- | libsylph/socket.c | 5 | ||||
-rw-r--r-- | src/send_message.c | 5 |
4 files changed, 24 insertions, 0 deletions
@@ -1,3 +1,10 @@ +2007-07-20 + + * libsylph/socket.c: ssl_read(); win32: set errno to EIO to avoid + random error message. + * src/send_message.c: send_message_smtp(): ignore errors right after + QUIT (workaround for Gmail SMTP server). + 2007-07-18 * src/compose.c: compose_parse_source_msg(): fixed wrong null check. diff --git a/ChangeLog.ja b/ChangeLog.ja index c156cc70..4ca2a8a0 100644 --- a/ChangeLog.ja +++ b/ChangeLog.ja @@ -1,3 +1,10 @@ +2007-07-20 + + * libsylph/socket.c: ssl_read(); win32: 不規則なエラーメッセージを + 避けるために errno を EIO に設定するようにした。 + * src/send_message.c: send_message_smtp(): QUIT 直後のエラーを無視する + ようにした(Gmail の SMTP サーバへの対策)。 + 2007-07-18 * src/compose.c: compose_parse_source_msg(): 誤ったnullチェックを修正。 diff --git a/libsylph/socket.c b/libsylph/socket.c index a1600381..d4540366 100644 --- a/libsylph/socket.c +++ b/libsylph/socket.c @@ -1363,6 +1363,8 @@ gint ssl_read(SSL *ssl, gchar *buf, gint len) { gint err, ret; + errno = 0; + if (SSL_pending(ssl) == 0) { if (fd_check_io(SSL_get_rfd(ssl), G_IO_IN) < 0) return -1; @@ -1383,6 +1385,9 @@ gint ssl_read(SSL *ssl, gchar *buf, gint len) g_warning("SSL_read() returned error %d, ret = %d\n", err, ret); if (ret == 0) return 0; +#ifdef G_OS_WIN32 + errno = EIO; +#endif return -1; } } diff --git a/src/send_message.c b/src/send_message.c index a0c93c94..93b76215 100644 --- a/src/send_message.c +++ b/src/send_message.c @@ -755,6 +755,11 @@ static gint send_message_smtp(PrefsAccount *ac_prefs, GSList *to_list, FILE *fp) /* consider EOF right after QUIT successful */ log_warning("%s\n", _("Connection closed by the remote host.")); ret = 0; + } else if (session->state == SESSION_ERROR && + SMTP_SESSION(session)->state == SMTP_QUIT) { + /* ignore errors right after QUIT */ + log_warning("%s\n", _("Error occurred after QUIT command (ignored)")); + ret = 0; } else if (session->state == SESSION_ERROR || session->state == SESSION_EOF || session->state == SESSION_TIMEOUT || |