diff options
author | Thomas Haller <thaller@redhat.com> | 2020-01-14 12:38:07 +0100 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-01-16 12:42:41 +0100 |
commit | a2fd2ab55d33e0beaf0ef4cdab3e1b0539a5de59 (patch) | |
tree | 7706db43f706b54838179903f7aabe74decc476f | |
parent | 13c30f987c41e154912465a20d2fe28de59b7742 (diff) | |
download | NetworkManager-a2fd2ab55d33e0beaf0ef4cdab3e1b0539a5de59.tar.gz |
shared: remove nm_dbus_connection_signal_subscribe_object_manager() helper
It seems to complicate things more than helping. Drop it. What we still have
is a wrapper around plain g_dbus_connection_signal_subscribe(). That one is
trivial and helpful. The previous wrapper seems to add more complexity.
-rw-r--r-- | libnm/nm-client.c | 14 | ||||
-rw-r--r-- | shared/nm-glib-aux/nm-dbus-aux.c | 92 | ||||
-rw-r--r-- | shared/nm-glib-aux/nm-dbus-aux.h | 26 | ||||
-rw-r--r-- | src/devices/bluetooth/nm-bluez-manager.c | 14 |
4 files changed, 21 insertions, 125 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c index b127500053..b27890a831 100644 --- a/libnm/nm-client.c +++ b/libnm/nm-client.c @@ -6635,13 +6635,13 @@ _init_fetch_all (NMClient *self) priv->get_managed_objects_cancellable = g_cancellable_new (); - priv->dbsid_nm_object_manager = nm_dbus_connection_signal_subscribe_object_manager_plain (priv->dbus_connection, - priv->name_owner, - "/org/freedesktop", - NULL, - _dbus_managed_objects_changed_cb, - self, - NULL); + priv->dbsid_nm_object_manager = nm_dbus_connection_signal_subscribe_object_manager (priv->dbus_connection, + priv->name_owner, + "/org/freedesktop", + NULL, + _dbus_managed_objects_changed_cb, + self, + NULL); priv->dbsid_dbus_properties_properties_changed = nm_dbus_connection_signal_subscribe_properties_changed (priv->dbus_connection, priv->name_owner, diff --git a/shared/nm-glib-aux/nm-dbus-aux.c b/shared/nm-glib-aux/nm-dbus-aux.c index 86061aefdf..faf54e8bbc 100644 --- a/shared/nm-glib-aux/nm-dbus-aux.c +++ b/shared/nm-glib-aux/nm-dbus-aux.c @@ -102,98 +102,6 @@ nm_dbus_connection_call_get_all (GDBusConnection *dbus_connection, /*****************************************************************************/ -typedef struct { - NMDBusConnectionSignalObjectMangerCb callback; - gpointer user_data; - GDestroyNotify user_data_free_func; -} SubscribeObjectManagerData; - -static void -_subscribe_object_manager_cb (GDBusConnection *connection, - const char *sender_name, - const char *arg_object_path, - const char *interface_name, - const char *signal_name, - GVariant *parameters, - gpointer user_data) -{ - const SubscribeObjectManagerData *d = user_data; - - nm_assert (nm_streq0 (interface_name, DBUS_INTERFACE_OBJECT_MANAGER)); - - if (nm_streq (signal_name, "InterfacesAdded")) { - gs_unref_variant GVariant *interfaces_and_properties = NULL; - const char *object_path; - - if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(oa{sa{sv}})"))) - return; - - g_variant_get (parameters, - "(&o@a{sa{sv}})", - &object_path, - &interfaces_and_properties); - - d->callback (object_path, interfaces_and_properties, NULL, d->user_data); - return; - } - - if (nm_streq (signal_name, "InterfacesRemoved")) { - gs_free const char **interfaces = NULL; - const char *object_path; - - if (!g_variant_is_of_type (parameters, G_VARIANT_TYPE ("(oas)"))) - return; - - g_variant_get (parameters, - "(&o^a&s)", - &object_path, - &interfaces); - - d->callback (object_path, NULL, interfaces, d->user_data); - return; - } -} - -static void -_subscribe_object_manager_data_free (gpointer ptr) -{ - SubscribeObjectManagerData *d = ptr; - - if (d->user_data_free_func) - d->user_data_free_func (d->user_data); - nm_g_slice_free (d); -} - -guint -nm_dbus_connection_signal_subscribe_object_manager (GDBusConnection *dbus_connection, - const char *service_name, - const char *object_path, - NMDBusConnectionSignalObjectMangerCb callback, - gpointer user_data, - GDestroyNotify user_data_free_func) -{ - SubscribeObjectManagerData *d; - - g_return_val_if_fail (callback, 0); - - d = g_slice_new (SubscribeObjectManagerData); - *d = (SubscribeObjectManagerData) { - .callback = callback, - .user_data = user_data, - .user_data_free_func = user_data_free_func, - }; - - return nm_dbus_connection_signal_subscribe_object_manager_plain (dbus_connection, - service_name, - object_path, - NULL, - _subscribe_object_manager_cb, - d, - _subscribe_object_manager_data_free); -} - -/*****************************************************************************/ - static void _nm_dbus_connection_call_get_managed_objects_cb (GObject *source, GAsyncResult *res, diff --git a/shared/nm-glib-aux/nm-dbus-aux.h b/shared/nm-glib-aux/nm-dbus-aux.h index 840e23c275..8ff14adc88 100644 --- a/shared/nm-glib-aux/nm-dbus-aux.h +++ b/shared/nm-glib-aux/nm-dbus-aux.h @@ -131,13 +131,13 @@ void nm_dbus_connection_call_get_all (GDBusConnection *dbus_connection, /*****************************************************************************/ static inline guint -nm_dbus_connection_signal_subscribe_object_manager_plain (GDBusConnection *dbus_connection, - const char *service_name, - const char *object_path, - const char *signal_name, - GDBusSignalCallback callback, - gpointer user_data, - GDestroyNotify user_data_free_func) +nm_dbus_connection_signal_subscribe_object_manager (GDBusConnection *dbus_connection, + const char *service_name, + const char *object_path, + const char *signal_name, + GDBusSignalCallback callback, + gpointer user_data, + GDestroyNotify user_data_free_func) { return g_dbus_connection_signal_subscribe (dbus_connection, service_name, @@ -151,18 +151,6 @@ nm_dbus_connection_signal_subscribe_object_manager_plain (GDBusConnection *dbus_ user_data_free_func); } -typedef void (*NMDBusConnectionSignalObjectMangerCb) (const char *object_path, - GVariant *added_interfaces_and_properties, - const char *const*removed_interfaces, - gpointer user_data); - -guint nm_dbus_connection_signal_subscribe_object_manager (GDBusConnection *dbus_connection, - const char *service_name, - const char *object_path, - NMDBusConnectionSignalObjectMangerCb callback, - gpointer user_data, - GDestroyNotify user_data_free_func); - void nm_dbus_connection_call_get_managed_objects (GDBusConnection *dbus_connection, const char *bus_name, const char *object_path, diff --git a/src/devices/bluetooth/nm-bluez-manager.c b/src/devices/bluetooth/nm-bluez-manager.c index 1c494a11d7..84b8c28e88 100644 --- a/src/devices/bluetooth/nm-bluez-manager.c +++ b/src/devices/bluetooth/nm-bluez-manager.c @@ -2263,13 +2263,13 @@ name_owner_changed (NMBluezManager *self, priv->get_managed_objects_cancellable = g_cancellable_new (); - priv->managed_objects_changed_id = nm_dbus_connection_signal_subscribe_object_manager_plain (priv->dbus_connection, - priv->name_owner, - NM_BLUEZ_MANAGER_PATH, - NULL, - _dbus_managed_objects_changed_cb, - self, - NULL); + priv->managed_objects_changed_id = nm_dbus_connection_signal_subscribe_object_manager (priv->dbus_connection, + priv->name_owner, + NM_BLUEZ_MANAGER_PATH, + NULL, + _dbus_managed_objects_changed_cb, + self, + NULL); priv->properties_changed_id = nm_dbus_connection_signal_subscribe_properties_changed (priv->dbus_connection, priv->name_owner, |