summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2017-06-21 15:57:07 +0200
committerThomas Haller <thaller@redhat.com>2017-06-28 20:36:56 +0200
commit5b815f8a7141d557fd87558c99daf51cdde54d65 (patch)
tree547797ead3ecce6aa79c01e888f72bc420147ab0
parent182996cd2e3b87729c1508ad3018fb542c943cc1 (diff)
downloadNetworkManager-th/libnm-client-async-revert.tar.gz
libnm: refactor name-owner check for object-managerth/libnm-client-async-revert
-rw-r--r--libnm/nm-client.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index ee9418ce60..38b69100f9 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -2275,12 +2275,22 @@ objects_created (NMClient *client, GDBusObjectManager *object_manager, GError **
static void name_owner_changed (GObject *object, GParamSpec *pspec, gpointer user_data);
static gboolean
+_om_has_name_owner (GDBusObjectManager *object_manager)
+{
+ gs_free char *name_owner = NULL;
+
+ nm_assert (G_IS_DBUS_OBJECT_MANAGER_CLIENT (object_manager));
+
+ name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (object_manager));
+ return !!name_owner;
+}
+
+static gboolean
init_sync (GInitable *initable, GCancellable *cancellable, GError **error)
{
NMClient *client = NM_CLIENT (initable);
NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (client);
GList *objects, *iter;
- gchar *name_owner;
priv->object_manager = g_dbus_object_manager_client_new_for_bus_sync (_nm_dbus_bus_type (),
G_DBUS_OBJECT_MANAGER_CLIENT_FLAGS_DO_NOT_AUTO_START,
@@ -2292,9 +2302,7 @@ init_sync (GInitable *initable, GCancellable *cancellable, GError **error)
if (!priv->object_manager)
return FALSE;
- name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (priv->object_manager));
- if (name_owner) {
- g_free (name_owner);
+ if (_om_has_name_owner (priv->object_manager)) {
if (!objects_created (client, priv->object_manager, error))
return FALSE;
@@ -2420,7 +2428,6 @@ got_object_manager (GObject *object, GAsyncResult *result, gpointer user_data)
NMClient *client;
NMClientPrivate *priv;
GList *objects, *iter;
- gchar *name_owner;
GError *error = NULL;
GDBusObjectManager *object_manager;
@@ -2435,9 +2442,7 @@ got_object_manager (GObject *object, GAsyncResult *result, gpointer user_data)
priv = NM_CLIENT_GET_PRIVATE (client);
priv->object_manager = object_manager;
- name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (priv->object_manager));
- if (name_owner) {
- g_free (name_owner);
+ if (_om_has_name_owner (priv->object_manager)) {
if (!objects_created (client, priv->object_manager, &error)) {
g_simple_async_result_take_error (init_data->result, error);
init_async_complete (init_data);
@@ -2497,13 +2502,10 @@ name_owner_changed (GObject *object, GParamSpec *pspec, gpointer user_data)
NMClient *self = user_data;
NMClientPrivate *priv = NM_CLIENT_GET_PRIVATE (self);
GDBusObjectManager *object_manager = G_DBUS_OBJECT_MANAGER (object);
- gchar *name_owner;
nm_assert (object_manager == priv->object_manager);
- name_owner = g_dbus_object_manager_client_get_name_owner (G_DBUS_OBJECT_MANAGER_CLIENT (object));
- if (name_owner) {
- g_free (name_owner);
+ if (_om_has_name_owner (object_manager)) {
g_clear_object (&priv->object_manager);
nm_clear_g_cancellable (&priv->new_object_manager_cancellable);
priv->new_object_manager_cancellable = g_cancellable_new ();