diff options
author | Dan Williams <dcbw@redhat.com> | 2014-10-23 10:05:20 -0500 |
---|---|---|
committer | Dan Williams <dcbw@redhat.com> | 2014-11-04 12:38:33 -0600 |
commit | 918495ffe804459a2f53f42d6f39362b2814de59 (patch) | |
tree | 53ef628e5abb0eb6903329fdcde388d22624c044 | |
parent | ca0a4f4068e1d3bf9e99d00be273003db0862e6a (diff) | |
download | NetworkManager-918495ffe804459a2f53f42d6f39362b2814de59.tar.gz |
fixup! libnm: cancel NMRemoteSettings/NMManager property reload when NM quits
-rw-r--r-- | libnm-core/nm-core-internal.h | 6 | ||||
-rw-r--r-- | libnm/nm-manager.c | 12 | ||||
-rw-r--r-- | libnm/nm-remote-settings.c | 10 |
3 files changed, 13 insertions, 15 deletions
diff --git a/libnm-core/nm-core-internal.h b/libnm-core/nm-core-internal.h index 48295f7821..fced4ffe3d 100644 --- a/libnm-core/nm-core-internal.h +++ b/libnm-core/nm-core-internal.h @@ -68,6 +68,12 @@ #include "nm-version.h" #include "nm-vpn-dbus-interface.h" +#define NM_UTILS_CLEAR_CANCELLABLE(c) \ + if (c) { \ + g_cancellable_cancel (c); \ + g_clear_object (&c); \ + } + const char *_nm_setting_ip4_config_get_address_label (NMSettingIP4Config *setting, guint32 i); gboolean _nm_setting_ip4_config_add_address_with_label (NMSettingIP4Config *setting, diff --git a/libnm/nm-manager.c b/libnm/nm-manager.c index afd84bbc67..d60845edc9 100644 --- a/libnm/nm-manager.c +++ b/libnm/nm-manager.c @@ -1216,10 +1216,6 @@ updated_properties (GObject *object, GAsyncResult *result, gpointer user_data) _nm_object_queue_notify (NM_OBJECT (manager), NM_MANAGER_NM_RUNNING); } -#define CLEAR_CANCELLABLE(c) \ - if (c) g_cancellable_cancel (c); \ - g_clear_object (&c); - static void nm_running_changed_cb (GObject *object, GParamSpec *pspec, @@ -1229,7 +1225,7 @@ nm_running_changed_cb (GObject *object, NMManagerPrivate *priv = NM_MANAGER_GET_PRIVATE (manager); if (!nm_manager_get_nm_running (manager)) { - CLEAR_CANCELLABLE (priv->props_cancellable); + NM_UTILS_CLEAR_CANCELLABLE (priv->props_cancellable); priv->state = NM_STATE_UNKNOWN; priv->startup = FALSE; @@ -1254,9 +1250,11 @@ nm_running_changed_cb (GObject *object, _nm_object_cache_clear (); } else { _nm_object_suppress_property_updates (NM_OBJECT (manager), FALSE); - CLEAR_CANCELLABLE (priv->props_cancellable); + + NM_UTILS_CLEAR_CANCELLABLE (priv->props_cancellable); priv->props_cancellable = g_cancellable_new (); _nm_object_reload_properties_async (NM_OBJECT (manager), priv->props_cancellable, updated_properties, manager); + manager_recheck_permissions (priv->manager_proxy, manager); } } @@ -1408,8 +1406,6 @@ dispose (GObject *object) g_hash_table_destroy (priv->permissions); priv->permissions = NULL; - g_clear_object (&priv->props_cancellable); - G_OBJECT_CLASS (nm_manager_parent_class)->dispose (object); } diff --git a/libnm/nm-remote-settings.c b/libnm/nm-remote-settings.c index 83446cd526..754fbe1303 100644 --- a/libnm/nm-remote-settings.c +++ b/libnm/nm-remote-settings.c @@ -611,10 +611,6 @@ updated_properties (GObject *object, GAsyncResult *result, gpointer user_data) } } -#define CLEAR_CANCELLABLE(c) \ - if (c) g_cancellable_cancel (c); \ - g_clear_object (&c); - static void nm_running_changed (GObject *object, GParamSpec *pspec, @@ -629,7 +625,7 @@ nm_running_changed (GObject *object, GPtrArray *connections; int i; - CLEAR_CANCELLABLE (priv->props_cancellable); + NM_UTILS_CLEAR_CANCELLABLE (priv->props_cancellable); /* Clear connections */ connections = priv->all_connections; @@ -653,7 +649,8 @@ nm_running_changed (GObject *object, _nm_object_suppress_property_updates (NM_OBJECT (self), TRUE); } else { _nm_object_suppress_property_updates (NM_OBJECT (self), FALSE); - CLEAR_CANCELLABLE (priv->props_cancellable); + + NM_UTILS_CLEAR_CANCELLABLE (priv->props_cancellable); priv->props_cancellable = g_cancellable_new (); _nm_object_reload_properties_async (NM_OBJECT (self), priv->props_cancellable, updated_properties, self); } @@ -741,7 +738,6 @@ dispose (GObject *object) g_clear_pointer (&priv->visible_connections, g_ptr_array_unref); g_clear_pointer (&priv->hostname, g_free); - g_clear_object (&priv->props_cancellable); G_OBJECT_CLASS (nm_remote_settings_parent_class)->dispose (object); } |