From 55c4709701b8d76a5b25d18eb7726f1597ff3c08 Mon Sep 17 00:00:00 2001 From: Radoslaw Pajak Date: Tue, 17 Dec 2013 09:35:06 +0100 Subject: [PATCH] [daemon-fix] Fixed sending daemon match rules for kdbus broadcasts Change-Id: I4871ee626c71a26dac6437d05b5b543a6cf043de Signed-off-by: Radoslaw Pajak --- bus/bus.c | 2 +- bus/kdbus-d.c | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/bus/bus.c b/bus/bus.c index d4e7872..8698db2 100644 --- a/bus/bus.c +++ b/bus/bus.c @@ -1005,7 +1005,7 @@ bus_context_new (const DBusString *config_file, _dbus_verbose ("Registering org.freedesktop.DBus name for daemon failed!\n"); goto failed; } - if(!register_kdbus_starters(context->myKdbusConnection)) //TODO repair in kdbus + if(!register_kdbus_starters(context->myKdbusConnection)) { _dbus_verbose ("Registering kdbus starters for dbus activatable names failed!\n"); goto failed; diff --git a/bus/kdbus-d.c b/bus/kdbus-d.c index 442650a..86d712b 100644 --- a/bus/kdbus-d.c +++ b/bus/kdbus-d.c @@ -423,7 +423,6 @@ static dbus_bool_t add_matches_for_kdbus_broadcasts(DBusConnection* connection) uint64_t size; int fd; DBusTransport *transport; - const char* unique_name; transport = dbus_connection_get_transport(connection); @@ -443,14 +442,12 @@ static dbus_bool_t add_matches_for_kdbus_broadcasts(DBusConnection* connection) return FALSE; } - unique_name = dbus_bus_get_unique_name(connection); - - pCmd_match->id = strtoull(&unique_name[3], NULL, 10); + pCmd_match->id = 0; pCmd_match->cookie = 1; pCmd_match->size = size; + pCmd_match->src_id = KDBUS_MATCH_SRC_ID_ANY; pItem = pCmd_match->items; - pCmd_match->src_id = 0; pItem->type = KDBUS_MATCH_NAME_CHANGE; pItem->size = KDBUS_PART_HEADER_SIZE + 1; pItem = KDBUS_PART_NEXT(pItem); @@ -462,6 +459,7 @@ static dbus_bool_t add_matches_for_kdbus_broadcasts(DBusConnection* connection) pItem = KDBUS_PART_NEXT(pItem); pItem->type = KDBUS_MATCH_ID_ADD; pItem->size = KDBUS_PART_HEADER_SIZE + sizeof(__u64); + pItem->id = KDBUS_MATCH_SRC_ID_ANY; pItem = KDBUS_PART_NEXT(pItem); pItem->type = KDBUS_MATCH_ID_REMOVE; pItem->size = KDBUS_PART_HEADER_SIZE + sizeof(__u64); -- 2.7.4