summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMilan Crha <mcrha@redhat.com>2023-04-19 14:59:41 +0200
committerMilan Crha <mcrha@redhat.com>2023-04-19 14:59:41 +0200
commite8e751b65ed927e0028575045692fc38e9cceefe (patch)
tree7956561d2d8f77bf1c1070f7149baf0ac6119ca6
parentb8186d1caf4e0a73e7a96f2da96bd0c2d3f06870 (diff)
downloadevolution-data-server-e8e751b65ed927e0028575045692fc38e9cceefe.tar.gz
I#469 - IMAPx: Ignore 'Permission denied' error on refresh
Closes https://gitlab.gnome.org/GNOME/evolution-data-server/-/issues/469
-rw-r--r--src/camel/providers/imapx/camel-imapx-server.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/camel/providers/imapx/camel-imapx-server.c b/src/camel/providers/imapx/camel-imapx-server.c
index 1c4160288..1464042ca 100644
--- a/src/camel/providers/imapx/camel-imapx-server.c
+++ b/src/camel/providers/imapx/camel-imapx-server.c
@@ -5675,6 +5675,15 @@ camel_imapx_server_refresh_info_sync (CamelIMAPXServer *is,
success = camel_imapx_server_process_command_sync (is, ic, _("Error running STATUS"), cancellable, error);
+ /* Ignore permission errors from possibly write-only mailboxes */
+ if (!success && ic->status && ic->status->result == IMAPX_NO && ic->status->text &&
+ camel_strstrcase (ic->status->text, "Permission denied")) {
+ camel_imapx_command_unref (ic);
+ g_clear_object (&selected_mailbox);
+ g_clear_error (error);
+ return TRUE;
+ }
+
camel_imapx_command_unref (ic);
}
g_clear_object (&selected_mailbox);