2010-10-26 [ticho] 3.7.6cvs59
authorAndrej Kacian <ticho@claws-mail.org>
Tue, 26 Oct 2010 17:45:59 +0000 (17:45 +0000)
committerAndrej Kacian <ticho@claws-mail.org>
Tue, 26 Oct 2010 17:45:59 +0000 (17:45 +0000)
* src/news.c
Recreate NNTP session if server port setting has changed. Fixes
bug #2092.

ChangeLog
PATCHSETS
configure.ac
src/news.c

index 94e91ab..44cbf73 100644 (file)
--- 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
index a13a599..de050e6 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( 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
index b7a4080..c8fad85 100644 (file)
@@ -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=
 
index 0d4d6fa..5457efa 100644 (file)
@@ -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);