}
}
-static void imap_handle_error(Session *session, int libetpan_errcode)
+static void imap_handle_error(Session *session, const gchar *server, int libetpan_errcode)
{
- const gchar *session_server = (session ? session->server:"(null)");
+ const gchar *session_server = (session ? session->server : NULL);
+
+ if (session_server == NULL)
+ session_server = server;
+ if (session_server == NULL)
+ session_server = "(null)";
+
switch(libetpan_errcode) {
case MAILIMAP_NO_ERROR:
return;
int r;
gchar *server = NULL;
if ((r = imap_get_capabilities(session)) != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
return r;
}
server = g_strdup(SESSION(session)->server);
log_error(LOG_PROTOCOL, _("SSL handshake failed\n"));
else
#endif
- imap_handle_error(NULL, r);
+ imap_handle_error(NULL, account->recv_server, r);
if(!prefs_common.no_recv_err_panel) {
alertpanel_error_log(_("Can't connect to IMAP4 server: %s:%d"),
&lep_list);
if (r != MAILIMAP_NO_ERROR)
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
if ((r != MAILIMAP_NO_ERROR) || (clist_count(lep_list) == 0)) {
if (!folder->node) {
r = imap_threaded_list(folder, "", wildcard_path, &lep_list);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
item_list = NULL;
g_free(real_path);
return r;
argbuf = g_ptr_array_new();
r = imap_threaded_list(folder, "", imap_path, &lep_list);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
log_warning(LOG_PROTOCOL, _("can't create mailbox: LIST failed\n"));
g_free(imap_path);
g_free(dirpath);
}
mailimap_list_result_free(lep_list);
} else {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
}
}
imap_threaded_subscribe(folder, imap_path, TRUE);
}
mailimap_list_result_free(lep_list);
} else {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
}
}
r = imap_threaded_fetch_env(session->folder,
imapset, &env_list);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
if (is_fatal(r)) {
stuff->ok = r;
return NULL;
r = imap_threaded_list((Folder *)folder, "", subfolder, &lep_list);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
log_warning(LOG_PROTOCOL, _("LIST failed\n"));
*ok = r;
return '\0';
g_free(real_path);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
debug_print("status err %d\n", r);
return r;
}
/* refresh capas */
imap_free_capabilities(session);
if ((r = imap_get_capabilities(session)) != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
log_warning(LOG_PROTOCOL, _("Can't refresh capabilities.\n"));
return r;
}
type);
r = imap_threaded_login(session->folder, user, pass, type);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
log_print(LOG_PROTOCOL, "IMAP4< Error logging in to %s\n",
SESSION(session)->server);
ok = r;
r = imap_threaded_noop(session->folder, &exists, &recent, &expunge, &unseen, &uidnext, &uidval);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
debug_print("noop err %d\n", r);
return r;
}
r = imap_threaded_starttls(session->folder,
SESSION(session)->server, SESSION(session)->port);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
debug_print("starttls err %d\n", r);
return r;
}
r = imap_threaded_select(session->folder, folder,
exists, recent, unseen, uid_validity, can_create_flags, ok_flags);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
debug_print("select err %d\n", r);
return r;
}
r = imap_threaded_close(session->folder);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
debug_print("close err %d\n", r);
return r;
}
r = imap_threaded_examine(session->folder, folder,
exists, recent, unseen, uid_validity);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
debug_print("examine err %d\n", r);
return r;
r = imap_threaded_create(session->folder, folder);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
return r;
}
r = imap_threaded_rename(session->folder, old_folder,
new_folder);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
return r;
}
r = imap_threaded_delete(session->folder, folder);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
return r;
}
uid, 0, filename);
}
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
debug_print("fetch err %d\n", r);
return GINT_TO_POINTER(r);
}
mailimap_flag_list_free(flag_list);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
debug_print("append err %d\n", r);
return r;
}
r = imap_threaded_copy(session->folder, set, destfolder, source, dest);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
return r;
}
r = imap_threaded_store(session->folder, set, store_att_flags);
mailimap_store_att_flags_free(store_att_flags);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
return r;
}
r = imap_threaded_expunge(session->folder);
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
return r;
}
} else {
carray * lep_uidtab;
if (r != -1) { /* inited */
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
if (is_fatal(r))
return -1;
}
}
if (r != MAILIMAP_NO_ERROR) {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
return -1;
}
unseen = g_slist_concat(unseen, uidlist);
} else {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
goto bail;
}
flagged = g_slist_concat(flagged, uidlist);
} else {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
goto bail;
}
answered = g_slist_concat(answered, uidlist);
} else {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
goto bail;
}
forwarded = g_slist_concat(forwarded, uidlist);
} else {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
goto bail;
}
}
spam = g_slist_concat(spam, uidlist);
} else {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
goto bail;
}
}
deleted = g_slist_concat(deleted, uidlist);
} else {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
goto bail;
}
}
imap_flags_hash_from_lep_uid_flags_tab(lep_uidtab, flags_hash, tags_hash);
imap_fetch_uid_flags_list_free(lep_uidtab);
} else {
- imap_handle_error(SESSION(session), r);
+ imap_handle_error(SESSION(session), NULL, r);
goto bail;
}
}