talons

Fork of Claws Mail https://www.claws-mail
Log | Files | Refs | README | LICENSE

commit af6c3fb682b5293e4e83226bd2f8f77a63d55c3d
parent f741daa58a89284a4745c7ebf15f2a1ad57e3f8f
Author: Andrej Kacian <ticho@claws-mail.org>
Date:   Tue, 26 Oct 2010 17:45:59 +0000

2010-10-26 [ticho]	3.7.6cvs59

	* src/news.c
		Recreate NNTP session if server port setting has changed. Fixes
		bug #2092.

Diffstat:
MChangeLog | 6++++++
MPATCHSETS | 1+
Mconfigure.ac | 2+-
Msrc/news.c | 12+++++++++++-
4 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog @@ -1,3 +1,9 @@ +2010-10-26 [ticho] 3.7.6cvs59 + + * src/news.c + Recreate NNTP session if server port setting has changed. Fixes + bug #2092. + 2010-10-26 [colin] 3.7.6cvs58 * src/imap_gtk.c diff --git a/PATCHSETS b/PATCHSETS @@ -4054,3 +4054,4 @@ ( cvs diff -u -r 1.3.2.65 -r 1.3.2.66 src/prefs_themes.c; cvs diff -u -r 1.9.2.68 -r 1.9.2.69 src/gtk/gtkaspell.c; cvs diff -u -r 1.5.2.91 -r 1.5.2.92 src/gtk/gtkutils.c; cvs diff -u -r 1.4.2.50 -r 1.4.2.51 src/gtk/gtkutils.h; cvs diff -u -r 1.2.2.38 -r 1.2.2.39 src/gtk/inputdialog.c; cvs diff -u -r 1.1.4.25 -r 1.1.4.26 src/gtk/progressdialog.c; ) > 3.7.6cvs56.patchset ( cvs diff -u -r 1.12.2.60 -r 1.12.2.61 src/action.c; cvs diff -u -r 1.6.10.22 -r 1.6.10.23 src/addrharvest.c; cvs diff -u -r 1.17.2.41 -r 1.17.2.42 src/alertpanel.c; cvs diff -u -r 1.60.2.54 -r 1.60.2.55 src/filtering.c; cvs diff -u -r 1.18.2.30 -r 1.18.2.31 src/jpilot.c; cvs diff -u -r 1.3.2.66 -r 1.3.2.67 src/prefs_themes.c; cvs diff -u -r 1.49.2.133 -r 1.49.2.134 src/procmime.c; cvs diff -u -r 1.96.2.224 -r 1.96.2.225 src/textview.c; cvs diff -u -r 1.5.2.92 -r 1.5.2.93 src/gtk/gtkutils.c; cvs diff -u -r 1.1.2.97 -r 1.1.2.98 src/gtk/quicksearch.c; cvs diff -u -r 1.1.2.20 -r 1.1.2.21 src/gtk/quicksearch.h; cvs diff -u -r 1.1.2.32 -r 1.1.2.33 src/plugins/pgpcore/passphrase.c; cvs diff -u -r 1.4.2.7 -r 1.4.2.8 src/plugins/spamassassin/libspamc.c; ) > 3.7.6cvs57.patchset ( cvs diff -u -r 1.1.2.64 -r 1.1.2.65 src/imap_gtk.c; cvs diff -u -r 1.2.2.37 -r 1.2.2.38 src/mh_gtk.c; ) > 3.7.6cvs58.patchset +( cvs diff -u -r 1.101.2.61 -r 1.101.2.62 src/news.c; ) > 3.7.6cvs59.patchset diff --git a/configure.ac b/configure.ac @@ -12,7 +12,7 @@ MINOR_VERSION=7 MICRO_VERSION=6 INTERFACE_AGE=0 BINARY_AGE=0 -EXTRA_VERSION=58 +EXTRA_VERSION=59 EXTRA_RELEASE= EXTRA_GTK2_VERSION= diff --git a/src/news.c b/src/news.c @@ -298,6 +298,7 @@ static Session *news_session_new(Folder *folder, const gchar *server, gushort po session_init(SESSION(session), folder->account, FALSE); SESSION(session)->type = SESSION_NEWS; SESSION(session)->server = g_strdup(server); + SESSION(session)->port = port; SESSION(session)->sock = NULL; SESSION(session)->destroy = news_session_destroy; @@ -404,6 +405,14 @@ static NewsSession *news_session_get(Folder *folder) return NEWS_SESSION(rfolder->session); } + /* Handle port change (also ssl/nossl change) without needing to + * restart application. */ + if (rfolder->session->port != folder->account->nntpport) { + session_destroy(rfolder->session); + rfolder->session = news_session_new_for_folder(folder); + goto newsession; + } + if (time(NULL) - rfolder->session->last_access_time < SESSION_TIMEOUT_INTERVAL) { return NEWS_SESSION(rfolder->session); @@ -421,7 +430,8 @@ static NewsSession *news_session_get(Folder *folder) rfolder->session = news_session_new_for_folder(folder); } } - + +newsession: if (rfolder->session) session_set_access_time(rfolder->session);