bus: fix installing DRIVER matches on kdbus

In kdbus we still have to support org.freedesktop.DBus matches even though
there is no real bus driver. The reason is that bus-control.c turns
NameOwnerChanged matches into proper kdbus matches. If we drop DRIVER
matches early, we will never match on name-changes for kdbus.

Two ways to fix this:

 1) Install DRIVER matches on kdbus (which is the simple way our and which
    is what this patch does).

 2) Properly fix the scope-detection to let NameOwnerChanged matches
    through (or better: block anything with Member!=NameOwnerChanged).
This commit is contained in:
David Herrmann 2015-06-17 19:15:58 +02:00
parent 79b04ad7d4
commit 9ee7a50c0b
1 changed files with 2 additions and 4 deletions

View File

@ -2945,10 +2945,8 @@ _public_ int sd_bus_add_match(
/* Do not install server-side matches for matches
* against the local service, interface or bus
* path. Also, when on kdbus don't install driver
* matches server side. */
if (scope == BUS_MATCH_GENERIC ||
(!bus->is_kernel && scope == BUS_MATCH_DRIVER)) {
* path. */
if (scope != BUS_MATCH_LOCAL) {
if (!bus->is_kernel) {
/* When this is not a kernel transport, we