+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
+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
* 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]
+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 ¤Î¥Á¥§¥Ã¥¯¤ò
( 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
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
}
}
+ session_set_access_time(SESSION(session));
+
return SESSION(session);
}
if ((ok = nntp_ok(SESSION(session)->sock, buf)) != NN_SUCCESS)
return ok;
+ session_set_access_time(SESSION(session));
+
return NN_SUCCESS;
}
}
ok = nntp_ok(sock, NULL);
}
-
+
+ session_set_access_time(SESSION(session));
+
return ok;
}
#include <sys/signal.h>
#include <sys/wait.h>
#include <sys/time.h>
+#include <time.h>
#include <errno.h>
#include "session.h"
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)
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);
/*
* 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
{
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)) {
{
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)) {
}
rfolder->session = SESSION(session);
- if (session) {
- session->last_access_time = time(NULL);
- }
+
return IMAP_SESSION(session);
}
g_string_free(str, TRUE);
}
imap_seq_set_free(seq_list);
+
+ session_set_access_time(SESSION(session));
return newlist;
}
strretchomp(*ret);
log_print("IMAP4< %s\n", *ret);
+
+ session_set_access_time(SESSION(session));
return IMAP_SUCCESS;
}
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);
}
}
if (rfolder->session)
- rfolder->session->last_access_time = time(NULL);
+ session_set_access_time(rfolder->session);
+
return NNTP_SESSION(rfolder->session);
}
llast = llast->next;
}
+ session_set_access_time(SESSION(session));
+
return newlist;
}