diff options
Diffstat (limited to 'e-util/e-client-cache.c')
-rw-r--r-- | e-util/e-client-cache.c | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/e-util/e-client-cache.c b/e-util/e-client-cache.c index 215c470a88..19bfa8efd6 100644 --- a/e-util/e-client-cache.c +++ b/e-util/e-client-cache.c @@ -656,6 +656,21 @@ client_cache_cal_connect_cb (GObject *source_object, } static void +client_cache_source_allow_auth_prompt_done_cb (GObject *source_object, + GAsyncResult *result, + gpointer user_data) +{ + GError *local_error = NULL; + + e_source_allow_auth_prompt_finish (E_SOURCE (source_object), result, &local_error); + + if (local_error) { + g_debug ("%s: Failed with: %s", G_STRFUNC, local_error->message); + g_clear_error (&local_error); + } +} + +static void client_cache_source_removed_cb (ESourceRegistry *registry, ESource *source, GWeakRef *weak_ref) @@ -680,6 +695,11 @@ client_cache_source_disabled_cb (ESourceRegistry *registry, client_cache = g_weak_ref_get (weak_ref); if (client_cache != NULL) { + /* There is not much interest in the result, it just + makes sure a password prompt will be shown the next + time it is needed. */ + e_source_allow_auth_prompt (source, NULL, client_cache_source_allow_auth_prompt_done_cb, NULL); + client_ht_remove (client_cache, source); g_object_unref (client_cache); } |