[telepathy-glib/master] fd.o #25384 Remove any account which fails to prepare itself.

David Laban david.laban at collabora.co.uk
Tue Dec 1 15:52:48 PST 2009


Rather than the account manager just never becoming ready.
---
 telepathy-glib/account-manager.c |   12 +++++++++++-
 1 files changed, 11 insertions(+), 1 deletions(-)

diff --git a/telepathy-glib/account-manager.c b/telepathy-glib/account-manager.c
index 33e5593..b4e6a80 100644
--- a/telepathy-glib/account-manager.c
+++ b/telepathy-glib/account-manager.c
@@ -990,7 +990,17 @@ _tp_account_manager_account_ready_cb (GObject *source_object,
   GSimpleAsyncResult *result;
 
   if (!tp_account_prepare_finish (account, res, NULL))
-    return;
+    {
+      g_object_ref (account);
+      g_hash_table_remove (priv->accounts,
+          tp_proxy_get_object_path (account));
+
+      g_signal_emit (manager, signals[ACCOUNT_REMOVED], 0, account);
+      g_object_unref (account);
+
+      _tp_account_manager_check_core_ready (manager);
+      return;
+    }
 
   /* see if there's any pending callbacks for this account */
   result = g_hash_table_lookup (priv->create_results, account);
-- 
1.5.6.5




More information about the telepathy-commits mailing list