[evolution] connman: Recover from dropped D-Bus connections faster.



commit 26ece7454d44593b406853da122da92c4daf53a2
Author: Matthew Barnes <mbarnes redhat com>
Date:   Thu Jul 7 13:45:40 2011 -0400

    connman: Recover from dropped D-Bus connections faster.

 modules/connman/evolution-connman.c |   15 +++++++++++----
 1 files changed, 11 insertions(+), 4 deletions(-)
---
diff --git a/modules/connman/evolution-connman.c b/modules/connman/evolution-connman.c
index 0a320a1..f6225df 100644
--- a/modules/connman/evolution-connman.c
+++ b/modules/connman/evolution-connman.c
@@ -67,17 +67,24 @@ extension_set_state (EConnMan *extension,
 }
 
 static void
-connman_connection_closed_cb (GDBusConnection *pconnection,
+connman_connection_closed_cb (GDBusConnection *connection,
                               gboolean remote_peer_vanished,
                               GError *error,
-                              gpointer user_data)
+                              EConnMan *extension)
 {
-	EConnMan *extension = user_data;
+	gboolean try_again;
 
 	g_object_unref (extension->connection);
 	extension->connection = NULL;
 
-	g_timeout_add_seconds (3, (GSourceFunc) connman_connect, extension);
+	/* Try connecting to the session bus immediately, and then
+	 * keep trying at 3 second intervals until we're back on. */
+
+	try_again = connman_connect (extension);
+
+	if (try_again)
+		g_timeout_add_seconds (
+			3, (GSourceFunc) connman_connect, extension);
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]