[gnome-control-center/gnome-3-6] user-accounts: Set timeouts on all realmd interface proxies



commit c16278d484d4d2f43da29b24dc4e20ddc3f8456c
Author: Stef Walter <stefw gnome org>
Date:   Thu Oct 18 18:40:00 2012 +0200

    user-accounts: Set timeouts on all realmd interface proxies
    
    Without this, we can get timeout problems during joining a domain.
    
    This is a regression from when we refactored UmRealmManager to
    use GDBusObjectManagerClient. Make sure to call
    g_dbus_proxy_set_default_timeout() on all realmd interface
    proxies whenever they show up.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=686390

 panels/user-accounts/um-realm-manager.c |   13 +++++++++++--
 1 files changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/panels/user-accounts/um-realm-manager.c b/panels/user-accounts/um-realm-manager.c
index c7f95e0..e1c052c 100644
--- a/panels/user-accounts/um-realm-manager.c
+++ b/panels/user-accounts/um-realm-manager.c
@@ -97,6 +97,13 @@ on_object_added (GDBusObjectManager *manager,
                  GDBusObject *object,
                  gpointer user_data)
 {
+        GList *interfaces, *l;
+
+        interfaces = g_dbus_object_get_interfaces (object);
+        for (l = interfaces; l != NULL; l = g_list_next (l))
+                on_interface_added (manager, object, l->data);
+        g_list_free_full (interfaces, g_object_unref);
+
         if (is_realm_with_kerberos_and_membership (object)) {
                 g_debug ("Saw realm: %s", g_dbus_object_get_object_path (object));
                 g_signal_emit (user_data, signals[REALM_ADDED], 0, object);
@@ -187,10 +194,12 @@ on_provider_new (GObject *source,
         provider = um_realm_provider_proxy_new_finish (result, &error);
         closure->manager->provider = provider;
 
-        if (error == NULL)
+        if (error == NULL) {
+                g_dbus_proxy_set_default_timeout (G_DBUS_PROXY (closure->manager->provider), -1);
                 g_debug ("Created realm manager");
-        else
+        } else {
                 g_simple_async_result_take_error (async, error);
+        }
         g_simple_async_result_complete (async);
 
         g_object_unref (async);



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