]> git.ipfire.org Git - thirdparty/systemd.git/commit
bus-proxy: never pass on unmatched broadcasts 606/head
authorDavid Herrmann <dh.herrmann@gmail.com>
Thu, 16 Jul 2015 13:14:43 +0000 (15:14 +0200)
committerDavid Herrmann <dh.herrmann@gmail.com>
Thu, 16 Jul 2015 14:36:35 +0000 (16:36 +0200)
commite23bc0e7cac8ba79f4e14ab98ecd68c79cc87aab
treeb16aaccf677c04381bb37ef72d5a21e690308185
parent2ec7c4279e4cbbe668c5dfb0ab447b74deaa294b
bus-proxy: never pass on unmatched broadcasts

The lovely libvirtd goes into crazy mode if it receives broadcasts that
it didn't subscribe to. With bus-proxyd, this might happen in 2 cases:

    1) The kernel passes us an unmatched signal due to a false-positive
       bloom-match.

    2) We generate NameOwnerChanged/NameAcquired/NameLost locally even
       though the peer didn't subscribe to it.

dbus-daemon is reliable in what signals it passes on. So make sure we
follow that style. Never ever send a signal to a local peer if it doesn't
match an installed filter of that peer.
src/bus-proxyd/driver.c
src/bus-proxyd/driver.h
src/bus-proxyd/proxy.c
src/bus-proxyd/proxy.h
src/bus-proxyd/synthesize.c
src/bus-proxyd/synthesize.h