diff options
author | Milan Crha <mcrha@redhat.com> | 2015-05-06 13:57:05 +0200 |
---|---|---|
committer | Milan Crha <mcrha@redhat.com> | 2015-05-06 13:57:05 +0200 |
commit | d6e2499755d9c81bf80422ea02ed0eeaf9d523b4 (patch) | |
tree | 2643e91ed43aa77e2ae435fdf80473517ab5dcef /addressbook | |
parent | 336bb61612688618efce8a0de7c9b7dba2f24c82 (diff) | |
download | evolution-data-server-d6e2499755d9c81bf80422ea02ed0eeaf9d523b4.tar.gz |
Add ESource::UnsetLastCredentialsRequiredArguments method
This is used to unset any failed cached credentials responses, thus
when the backend is closed, which means it is not interested in the
credentials anymore, the clients won't ask for them.
Diffstat (limited to 'addressbook')
-rw-r--r-- | addressbook/libedata-book/e-data-book.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/addressbook/libedata-book/e-data-book.c b/addressbook/libedata-book/e-data-book.c index 96a52fb86..f4c35fef5 100644 --- a/addressbook/libedata-book/e-data-book.c +++ b/addressbook/libedata-book/e-data-book.c @@ -1331,12 +1331,30 @@ data_book_handle_get_cursor_cb (EDBusAddressBook *dbus_interface, return TRUE; } +static void +data_book_source_unset_last_credentials_required_arguments_cb (GObject *source_object, + GAsyncResult *result, + gpointer user_data) +{ + GError *local_error = NULL; + + g_return_if_fail (E_IS_SOURCE (source_object)); + + e_source_unset_last_credentials_required_arguments_finish (E_SOURCE (source_object), result, &local_error); + + if (local_error) + g_debug ("%s: Call failed: %s", G_STRFUNC, local_error->message); + + g_clear_error (&local_error); +} + static gboolean data_book_handle_close_cb (EDBusAddressBook *dbus_interface, GDBusMethodInvocation *invocation, EDataBook *data_book) { EBookBackend *backend; + ESource *source; const gchar *sender; /* G_DBUS_MESSAGE_FLAGS_NO_REPLY_EXPECTED should be set on @@ -1347,6 +1365,10 @@ data_book_handle_close_cb (EDBusAddressBook *dbus_interface, backend = e_data_book_ref_backend (data_book); g_return_val_if_fail (backend != NULL, FALSE); + source = e_backend_get_source (E_BACKEND (backend)); + e_source_unset_last_credentials_required_arguments (source, NULL, + data_book_source_unset_last_credentials_required_arguments_cb, NULL); + sender = g_dbus_method_invocation_get_sender (invocation); g_signal_emit_by_name (backend, "closed", sender); |