From e23bc0e7cac8ba79f4e14ab98ecd68c79cc87aab Mon Sep 17 00:00:00 2001 From: David Herrmann Date: Thu, 16 Jul 2015 15:14:43 +0200 Subject: 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.h | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'src/bus-proxyd/driver.h') diff --git a/src/bus-proxyd/driver.h b/src/bus-proxyd/driver.h index b8cedf5ce5..da3834f8b0 100644 --- a/src/bus-proxyd/driver.h +++ b/src/bus-proxyd/driver.h @@ -23,5 +23,6 @@ #include "sd-bus.h" #include "bus-xml-policy.h" +#include "proxy.h" -int bus_proxy_process_driver(sd_bus *a, sd_bus *b, sd_bus_message *m, SharedPolicy *sp, const struct ucred *ucred, Set *owned_names); +int bus_proxy_process_driver(Proxy *p, sd_bus *a, sd_bus *b, sd_bus_message *m, SharedPolicy *sp, const struct ucred *ucred, Set *owned_names); -- cgit v1.2.3-54-g00ecf