diff options
author | Szymon Janc <szymon.janc@tieto.com> | 2015-02-23 19:33:00 +0100 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2015-02-24 15:01:06 +0200 |
commit | 3670eea8ed5341a94b43ee3f780cb36a9c86d226 (patch) | |
tree | 60c63e815026eb0e30ea9830210162ce8a4fe859 /gdbus | |
parent | 3361ceaeab243b02abe4cba27e6c8db06b374781 (diff) | |
download | bluez-3670eea8ed5341a94b43ee3f780cb36a9c86d226.tar.gz |
gdbus: Fix not calling disconnect function
If daemon gets disconnected from D-Bus sender is NULL. Watches that
was explicitly added with NULL sender (ie disconnected_signal in
g_dbus_set_disconnect_function) should be called anyway.
Diffstat (limited to 'gdbus')
-rw-r--r-- | gdbus/watch.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gdbus/watch.c b/gdbus/watch.c index 0d0054c11..b60f650fd 100644 --- a/gdbus/watch.c +++ b/gdbus/watch.c @@ -523,9 +523,7 @@ static DBusHandlerResult message_filter(DBusConnection *connection, member = dbus_message_get_member(message); dbus_message_get_args(message, NULL, DBUS_TYPE_STRING, &arg, DBUS_TYPE_INVALID); - /* Sender is always the owner */ - if (sender == NULL) - return DBUS_HANDLER_RESULT_NOT_YET_HANDLED; + /* If sender != NULL it is always the owner */ for (current = listeners; current != NULL; current = current->next) { data = current->data; @@ -533,6 +531,9 @@ static DBusHandlerResult message_filter(DBusConnection *connection, if (connection != data->connection) continue; + if (!sender && data->owner) + continue; + if (data->owner && g_str_equal(sender, data->owner) == FALSE) continue; |