#include "log.h"
#include "hooks.h"
#include "logwindow.h"
+#include "passwordstore.h"
extern SessionStats session_stats;
if (inc_lock_count) return 0;
+ if (account->receive_in_progress) return 0;
+
if (prefs_common.work_offline &&
!inc_offline_should_override(TRUE,
_("Claws Mail needs network access in order "
PrefsAccount *account = list->data;
if (account->recv_at_getall) {
- session = inc_session_new(account);
- if (session)
- queue_list = g_list_append(queue_list, session);
+ if (!(account->receive_in_progress)) {
+ session = inc_session_new(account);
+ if (session)
+ queue_list = g_list_append(queue_list, session);
+ }
}
}
g_free(session);
}
+static gint pop3_get_port(Pop3Session *pop3_session)
+{
+#ifdef USE_GNUTLS
+ return pop3_session->ac_prefs->set_popport ?
+ pop3_session->ac_prefs->popport :
+ pop3_session->ac_prefs->ssl_pop == SSL_TUNNEL ? 995 : 110;
+#else
+ return pop3_session->ac_prefs->set_popport ?
+ pop3_session->ac_prefs->popport : 110;
+#endif
+}
+
static gint inc_start(IncProgressDialog *inc_dialog)
{
IncSession *session;
session = qlist->data;
pop3_session = POP3_SESSION(session->session);
pop3_session->user = g_strdup(pop3_session->ac_prefs->userid);
+
+ if (inc_dialog->show_dialog)
+ manage_window_focus_in
+ (inc_dialog->dialog->window,
+ NULL, NULL);
+
if (password_get(pop3_session->user,
pop3_session->ac_prefs->recv_server,
- "pop3", SESSION(session)->port,
+ "pop3", pop3_get_port(pop3_session),
&(pop3_session->pass))) {
/* NOP */;
- } else if (pop3_session->ac_prefs->passwd)
- pop3_session->pass =
- g_strdup(pop3_session->ac_prefs->passwd);
- else {
+ } else if ((pop3_session->pass = passwd_store_get_account(
+ pop3_session->ac_prefs->account_id, PWS_ACCOUNT_RECV)) == NULL) {
gchar *pass;
- if (inc_dialog->show_dialog)
- manage_window_focus_in
- (inc_dialog->dialog->window,
- NULL, NULL);
-
pass = input_dialog_query_password_keep
(pop3_session->ac_prefs->recv_server,
pop3_session->user,
&(pop3_session->ac_prefs->session_passwd));
- if (inc_dialog->show_dialog)
- manage_window_focus_out
- (inc_dialog->dialog->window,
- NULL, NULL);
-
if (pass) {
pop3_session->pass = pass;
}
}
+ if (inc_dialog->show_dialog)
+ manage_window_focus_out
+ (inc_dialog->dialog->window,
+ NULL, NULL);
+
qlist = next;
}
inbox = folder_get_default_inbox();
/* get list of messages in processing */
- processing = folder_get_default_processing();
+ processing = folder_get_default_processing(pop3_session->ac_prefs->account_id);
folder_item_scan(processing);
msglist = folder_item_get_msg_list(processing);
for(msglist_element = msglist; msglist_element != NULL;
msglist_element = msglist_element->next) {
- MsgInfo *msginfo = (MsgInfo *)msglist_element->data;
- procmsg_msginfo_free(msginfo);
+ procmsg_msginfo_free((MsgInfo**)&(msglist_element->data));
}
folder_item_update_thaw();
server = pop3_session->ac_prefs->recv_server;
account_name = pop3_session->ac_prefs->account_name;
+ port = pop3_get_port(pop3_session);
+
#ifdef USE_GNUTLS
- port = pop3_session->ac_prefs->set_popport ?
- pop3_session->ac_prefs->popport :
- pop3_session->ac_prefs->ssl_pop == SSL_TUNNEL ? 995 : 110;
SESSION(pop3_session)->ssl_type = pop3_session->ac_prefs->ssl_pop;
if (pop3_session->ac_prefs->ssl_pop != SSL_NONE)
SESSION(pop3_session)->nonblocking =
G_ALERTDEFAULT) != G_ALERTALTERNATE)
return INC_CANCEL;
}
- port = pop3_session->ac_prefs->set_popport ?
- pop3_session->ac_prefs->popport : 110;
#endif
buf = g_strdup_printf(_("Account '%s': Connecting to POP3 server: %s:%d..."),
}
/* CLAWS: claws uses a global .processing folder for the filtering. */
- dropfolder = folder_get_default_processing();
+ dropfolder = folder_get_default_processing(session->ac_prefs->account_id);
/* add msg file to drop folder */
if ((msgnum = folder_item_add_msg(
the common preferences */
if (prefs_common.autochk_newmail && autocheck_data
&& prefs_common.work_offline == FALSE) {
-#if GLIB_CHECK_VERSION(2,14,0)
if (interval % 1000 == 0)
autocheck_timer =
g_timeout_add_seconds(interval/1000, inc_autocheck_func, autocheck_data);
else
-#endif
- autocheck_timer = g_timeout_add
- (interval, inc_autocheck_func, autocheck_data);
+ autocheck_timer = g_timeout_add
+ (interval, inc_autocheck_func, autocheck_data);
debug_print("added timer = %d\n", autocheck_timer);
}
}