summaryrefslogtreecommitdiff
path: root/gdbus
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2012-12-28 14:51:03 +0200
committerMarcel Holtmann <marcel@holtmann.org>2012-12-30 10:47:56 -0800
commit68ff13358d70c627b8c24cdab659b756c35b73d6 (patch)
treec6222f4451d2f24c2e675159d045ff0dc7970718 /gdbus
parent5ad2dcf2b29479b700d507c3765a546c7c01a93d (diff)
downloadbluez-68ff13358d70c627b8c24cdab659b756c35b73d6.tar.gz
gdbus: Call check_signals when sending signals with g_dbus_send_message
If message passed to g_dbus_send_message is a signal verify if it is a valid and there really exists an interface with respective signal name.
Diffstat (limited to 'gdbus')
-rw-r--r--gdbus/object.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/gdbus/object.c b/gdbus/object.c
index c6bdd59ef..b9cb2840a 100644
--- a/gdbus/object.c
+++ b/gdbus/object.c
@@ -1511,6 +1511,15 @@ gboolean g_dbus_send_message(DBusConnection *connection, DBusMessage *message)
if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_METHOD_CALL)
dbus_message_set_no_reply(message, TRUE);
+ else if (dbus_message_get_type(message) == DBUS_MESSAGE_TYPE_SIGNAL) {
+ const char *path = dbus_message_get_path(message);
+ const char *interface = dbus_message_get_interface(message);
+ const char *name = dbus_message_get_member(message);
+ const GDBusArgInfo *args;
+
+ if (!check_signal(connection, path, interface, name, &args))
+ return FALSE;
+ }
result = dbus_connection_send(connection, message, NULL);