2012-11-28 [colin] 3.9.0cvs28
[claws.git] / src / etpan / nntp-thread.c
index b775c0c9a003f815a2f7f7b59e97af3a69d59759..e380e80df4e4da0316753e82ab30daf3e0be0dbf 100644 (file)
@@ -46,6 +46,8 @@
 #include "ssl_certificate.h"
 #include "socket.h"
 #include "remotefolder.h"
+#include "main.h"
+#include "account.h"
 
 #define DISABLE_LOG_DURING_LOGIN
 
@@ -96,12 +98,9 @@ static void nntp_logger(int direction, const char * str, size_t size)
 static void delete_nntp(Folder *folder, newsnntp *nntp)
 {
        chashdatum key;
-       chashdatum value;
 
        key.data = &folder;
        key.len = sizeof(folder);
-       value.data = nntp;
-       value.len = 0;
        chash_delete(session_hash, &key, NULL);
        
        key.data = &nntp;
@@ -161,6 +160,7 @@ void nntp_main_init(gboolean skip_ssl_cert_check)
 
 void nntp_main_done(gboolean have_connectivity)
 {
+       nntp_disconnect_all(have_connectivity);
        etpan_thread_manager_stop(thread_manager);
 #if defined(__NetBSD__) || defined(__OpenBSD__) || defined(__FreeBSD__)
        return;
@@ -377,8 +377,8 @@ static int etpan_certificate_check(const unsigned char *certificate, int len, vo
 {
 #ifdef USE_GNUTLS
        struct connect_param *param = (struct connect_param *)data;
-       gnutls_x509_crt cert = NULL;
-       gnutls_datum tmp;
+       gnutls_x509_crt_t cert = NULL;
+       gnutls_datum_t tmp;
        
        if (certificate == NULL || len < 0) {
                g_warning("no cert presented.\n");
@@ -410,8 +410,8 @@ static void connect_ssl_context_cb(struct mailstream_ssl_context * ssl_context,
        PrefsAccount *account = (PrefsAccount *)data;
        const gchar *cert_path = NULL;
        const gchar *password = NULL;
-       gnutls_x509_crt x509 = NULL;
-       gnutls_x509_privkey pkey = NULL;
+       gnutls_x509_crt_t x509 = NULL;
+       gnutls_x509_privkey_t pkey = NULL;
 
        if (account->in_ssl_client_cert_file && *account->in_ssl_client_cert_file)
                cert_path = account->in_ssl_client_cert_file;
@@ -971,6 +971,11 @@ int nntp_threaded_xhdr(Folder * folder, const char *header, guint32 beg, guint32
        return result.error;
 }
 
+void nntp_main_set_timeout(int sec)
+{
+       mailstream_network_delay.tv_sec = sec;
+       mailstream_network_delay.tv_usec = 0;
+}
 
 #else