sync with main 0.9.12cvs2
authorPaul Mangan <paul@claws-mail.org>
Thu, 5 Aug 2004 08:47:45 +0000 (08:47 +0000)
committerPaul Mangan <paul@claws-mail.org>
Thu, 5 Aug 2004 08:47:45 +0000 (08:47 +0000)
ChangeLog
ChangeLog.claws
ChangeLog.jp
PATCHSETS
configure.ac
src/common/nntp.c
src/common/session.c
src/common/session.h
src/common/socket.c
src/imap.c
src/news.c

index b2b450b23c4268ea0ea4b5b71ddecd553a32367f..d50f7ae803c473a26ddd03c409f96c3322abe5f1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,20 @@
+2004-08-04
+
+       * src/socket.c:
+         ssl_read()
+         ssl_peek(): check SSL before reading data (fixes freeze when
+         socket is broken).
+       * src/session.[ch]: session_set_access_time(): new.
+       * src/imap.c
+         src/news.c
+         src/nntp.c: only update last_access_time when successfully
+         receiving a server response.
+       * thanks to Cedric Pradalier for above.
+
+2004-07-23
+
+       * src/xml.[ch]: code cleanup and added some functions.
+
 2004-07-16
 
        * src/pop.[ch]: pop3_getrange_uidl_recv(): relaxed invalid UIDL
index c4bf61de441198d9135f8e0bf6f9b64acf0c265d..b742337e34991503e1c6078cd7eda4991d3252b6 100644 (file)
@@ -1,3 +1,16 @@
+2004-08-05 [paul]      0.9.12cvs43
+
+       * ChangeLog
+       * ChangeLog.jp
+       * src/imap.c
+       * src/news.c
+       * src/common/nntp.c
+       * src/common/session.c
+       * src/common/session.h
+       * src/common/socket.c
+               sync with main 0.9.12cvs2
+               see ChangeLog 2004-08-04
+
 2004-08-04 [christoph] 0.9.12cvs42
 
        * configure.ac
@@ -10,7 +23,8 @@
        * src/folder.c
        * src/localfolder.c
        * src/common/xml.[ch]
-               sync with main
+               sync with main 0.9.12cvs1
+               see ChangeLog 2004-07-23
 
 2004-08-03 [christoph]
 
index ebd361e032e90191351346a39d0e27049ec254f0..6f624bbe51f5fc1fe583afbc5bbb9b60b3689b81 100644 (file)
@@ -1,3 +1,20 @@
+2004-08-04
+
+       * src/socket.c:
+         ssl_read()
+         ssl_peek(): ¥Ç¡¼¥¿¤ÎÆɤ߹þ¤ß¤ÎÁ°¤Ë SSL ¤ò¥Á¥§¥Ã¥¯¤¹¤ë¤è¤¦¤Ë¤·¤¿
+         (¥½¥±¥Ã¥È¤¬Ç˲õ¤µ¤ì¤¿¤È¤­¤Î¥Õ¥ê¡¼¥º¤ò½¤Àµ)¡£
+       * src/session.[ch]: session_set_access_time(): ¿·µ¬¡£
+       * src/imap.c
+         src/news.c
+         src/nntp.c: ¥µ¡¼¥Ð¤Î±þÅú¤Î¼õ¿®¤ËÀ®¸ù¤·¤¿¤È¤­¤Î¤ß last_access_time
+         ¤ò¹¹¿·¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+       * ¾åµ­¤Ë¤Ä¤¤¤Æ Cedric Pradalier ¤µ¤ó thanks¡£
+
+2004-07-23
+
+       * src/xml.[ch]: ¥³¡¼¥É¤ÎÀ°Íý¤È¤¤¤¯¤Ä¤«¤Î´Ø¿ô¤ÎÄɲá£
+
 2004-07-16
 
        * src/pop.[ch]: pop3_getrange_uidl_recv(): Ìµ¸ú¤Ê UIDL ¤Î¥Á¥§¥Ã¥¯¤ò
index a9b1e453bd273e780c392628dbe0e2402ed7d8f8..140766d10224983fbc221c1635cbbfd28efc97ab 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
@@ -27,3 +27,4 @@
 ( cvs diff -u -r 1.120 -r 1.121 src/messageview.c; ) > 0.9.12cvs38.patchset
 ( cvs diff -u -r 1.121 -r 1.122 src/messageview.c; ) > 0.9.12cvs39.patchset
 ( cvs diff -u -r 1.120 -r 1.121 AUTHORS; cvs diff -u -r 1.50 -r 1.51 po/pt_BR.po; ) > 0.9.12cvs40.patchset
+( cvs diff -u -r 1.439 -r 1.440 ChangeLog; cvs diff -u -r 1.434 -r 1.435 ChangeLog.jp; cvs diff -u -r 1.204 -r 1.205 src/imap.c; cvs diff -u -r 1.116 -r 1.117 src/news.c; cvs diff -u -r 1.10 -r 1.11 src/common/nntp.c; cvs diff -u -r 1.25 -r 1.26 src/common/session.c; cvs diff -u -r 1.10 -r 1.11 src/common/session.h; cvs diff -u -r 1.13 -r 1.14 src/common/socket.c; ) > 0.9.12cvs43.patchset
index f7d637e97840af5c50a92e7d3f95e6eca1e7b3db..20c81e13b79d8257b08b5c0dc444a648bfa661a7 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=12
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=42
+EXTRA_VERSION=43
 EXTRA_RELEASE=
 
 if test \( $EXTRA_VERSION -eq 0 \) -o \( "x$EXTRA_RELEASE" != "x" \); then
index 991feb6c769f041374ec5a6c1dd48fbd01065118..0bb0691a2ad058233b1f86593900b2fbb86d586d 100644 (file)
@@ -125,6 +125,8 @@ Session *nntp_session_new(const gchar *server, gushort port, gchar *buf,
                }
        }
 
+       session_set_access_time(SESSION(session));
+       
        return SESSION(session);
 }
 
@@ -298,6 +300,8 @@ gint nntp_post(NNTPSession *session, FILE *fp)
        if ((ok = nntp_ok(SESSION(session)->sock, buf)) != NN_SUCCESS)
                return ok;
 
+       session_set_access_time(SESSION(session));
+
        return NN_SUCCESS;
 }
 
@@ -439,6 +443,8 @@ static gint nntp_gen_command(NNTPSession *session, gchar *argbuf,
                }
                 ok = nntp_ok(sock, NULL);
        }
-
+       
+       session_set_access_time(SESSION(session));
+       
        return ok;
 }
index fcedc19ce61b648da6c48631a46500ff9f887a75..2abdea7409d9bd1dc7be21f2653fa3cdcc1d2d12 100644 (file)
@@ -33,6 +33,7 @@
 #include <sys/signal.h>
 #include <sys/wait.h>
 #include <sys/time.h>
+#include <time.h>
 #include <errno.h>
 
 #include "session.h"
@@ -205,6 +206,11 @@ gboolean session_is_connected(Session *session)
                session->state == SESSION_RECV);
 }
 
+void session_set_access_time(Session *session)
+{
+       session->last_access_time = time(NULL);
+}
+
 void session_set_timeout(Session *session, guint interval)
 {
        if (session->timeout_tag > 0)
index 2aca7c87c49b9758e0454afe464c612a8ea66cf2..0ebe0f688b63b8ef75357a19172a54e7f11b24ce 100644 (file)
@@ -159,6 +159,8 @@ gint session_disconnect             (Session        *session);
 void session_destroy           (Session        *session);
 gboolean session_is_connected  (Session        *session);
 
+void session_set_access_time   (Session        *session);
+
 void session_set_timeout       (Session        *session,
                                 guint           interval);
 
index 8b5f07343b1bc90b098b8a453c35db2f2df143bb..025bb06ebd9ec6a1cf6edf58f7508e5b3120460d 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2003 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2004 Hiroyuki Yamamoto
  *
  * 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
@@ -1021,6 +1021,11 @@ gint ssl_read(SSL *ssl, gchar *buf, gint len)
 {
        gint ret;
 
+       if (SSL_pending(ssl) == 0) {
+               if (fd_check_io(SSL_get_rfd(ssl), G_IO_IN) < 0)
+                       return -1;
+       }
+
        ret = SSL_read(ssl, buf, len);
 
        switch (SSL_get_error(ssl, ret)) {
@@ -1311,6 +1316,11 @@ gint ssl_peek(SSL *ssl, gchar *buf, gint len)
 {
        gint ret;
 
+       if (SSL_pending(ssl) == 0) {
+               if (fd_check_io(SSL_get_rfd(ssl), G_IO_IN) < 0)
+                       return -1;
+       }
+
        ret = SSL_peek(ssl, buf, len);
 
        switch (SSL_get_error(ssl, ret)) {
index deaf8ae4d6885af4a99fb5e306bdd8b255c948ae..6edc1c3c557b429b40092281a4bdd5bbc1d497c2 100644 (file)
@@ -685,9 +685,7 @@ static IMAPSession *imap_session_get(Folder *folder)
        }
 
        rfolder->session = SESSION(session);
-       if (session) {
-               session->last_access_time = time(NULL);
-       }
+       
        return IMAP_SESSION(session);
 }
 
@@ -1902,6 +1900,8 @@ static GSList *imap_get_uncached_messages(IMAPSession *session,
                g_string_free(str, TRUE);
        }
        imap_seq_set_free(seq_list);
+       
+       session_set_access_time(SESSION(session));
 
        return newlist;
 }
@@ -3261,6 +3261,8 @@ static gint imap_gen_recv(IMAPSession *session, gchar **ret)
        strretchomp(*ret);
 
        log_print("IMAP4< %s\n", *ret);
+       
+       session_set_access_time(SESSION(session));
 
        return IMAP_SUCCESS;
 }
index 4065aea9fddc0a9200d5566034b210ffe5de8503..6edf6a3e5acb686ca031fbca22b4dc46d6aecfc4 100644 (file)
@@ -266,8 +266,8 @@ static NNTPSession *news_session_get(Folder *folder)
                return NNTP_SESSION(rfolder->session);
        }
 
-       if (time(NULL) - rfolder->session->last_access_time < SESSION_TIMEOUT_INTERVAL) {
-               rfolder->session->last_access_time = time(NULL);
+       if (time(NULL) - rfolder->session->last_access_time <
+               SESSION_TIMEOUT_INTERVAL) {
                return NNTP_SESSION(rfolder->session);
        }
 
@@ -283,7 +283,8 @@ static NNTPSession *news_session_get(Folder *folder)
        }
 
        if (rfolder->session)
-               rfolder->session->last_access_time = time(NULL);
+               session_set_access_time(rfolder->session);
+
        return NNTP_SESSION(rfolder->session);
 }
 
@@ -1048,6 +1049,8 @@ static GSList *news_get_msginfos_for_range(NNTPSession *session, FolderItem *ite
                llast = llast->next;
        }
 
+       session_set_access_time(SESSION(session));
+
        return newlist;
 }