[PATCH 2/2] dbus: add l_dbus_object_set_data()

James Prestwood <[email protected]> Wed, 7 Aug 2024 10:59:43 -0700
Newsgroups dev.linux.lists.ell
Message-ID <[email protected]>
Modifies the user data of an existing DBus object.
---
 ell/dbus.c  | 13 +++++++++++++
 ell/dbus.h  |  2 ++
 ell/ell.sym |  1 +
 3 files changed, 16 insertions(+)

diff --git a/ell/dbus.c b/ell/dbus.c
index a1ce09e..cd14eef 100644
--- a/ell/dbus.c
+++ b/ell/dbus.c
@@ -1694,6 +1694,19 @@ LIB_EXPORT void *l_dbus_object_get_data(struct l_dbus *dbus, const char *object,
 							interface);
 }
 
+LIB_EXPORT bool l_dbus_object_set_data(struct l_dbus *dbus, const char *object,
+				const char *interface, void *user_data)
+{
+	if (unlikely(!dbus))
+		return false;
+
+	if (unlikely(!dbus->tree))
+		return false;
+
+	return _dbus_object_tree_set_interface_data(dbus->tree, object,
+							interface, user_data);
+}
+
 LIB_EXPORT bool l_dbus_object_manager_enable(struct l_dbus *dbus,
 						const char *root)
 {
diff --git a/ell/dbus.h b/ell/dbus.h
index 21bd4bf..6ec9c83 100644
--- a/ell/dbus.h
+++ b/ell/dbus.h
@@ -227,6 +227,8 @@ bool l_dbus_object_remove_interface(struct l_dbus *dbus, const char *object,
 					const char *interface);
 void *l_dbus_object_get_data(struct l_dbus *dbus, const char *object,
 				const char *interface);
+bool l_dbus_object_set_data(struct l_dbus *dbus, const char *object,
+				const char *interface, void *user_data);
 
 bool l_dbus_object_manager_enable(struct l_dbus *dbus, const char *root);
 
diff --git a/ell/ell.sym b/ell/ell.sym
index 0dad73f..aafc0a4 100644
--- a/ell/ell.sym
+++ b/ell/ell.sym
@@ -225,6 +225,7 @@ global:
 	l_dbus_object_add_interface;
 	l_dbus_object_remove_interface;
 	l_dbus_object_get_data;
+        l_dbus_object_set_data;
 	l_dbus_object_manager_enable;
 	l_dbus_add_disconnect_watch;
 	l_dbus_add_service_watch;
-- 
2.34.1