dbus-monitor: disable automatic handling of o.fd.Peer messages

A normal DBusConnection will automatically reply to o.fd.Peer
messages such as Ping. We don't want this: if we are using
traditional eavesdropping with an older dbus-daemon, we'll
confuse everyone else by replying to messages that weren't
intended for us. If we are using the new Monitoring
interface (since 1.9.12), the same still applies, but in
addition, the dbus-daemon will disconnect us for not being
a well-behaved monitor.

Bug: https://bugs.freedesktop.org/show_bug.cgi?id=90952
Signed-off-by: Simon McVittie <simon.mcvittie@collabora.co.uk>
Reviewed-by: Philip Withnall <philip.withnall@collabora.co.uk>
This commit is contained in:
Simon McVittie 2015-07-03 13:50:04 +01:00
parent d10ac7c57e
commit d9ee040d0b

View file

@ -483,6 +483,11 @@ main (int argc, char *argv[])
exit (1);
}
/* Receive o.fd.Peer messages as normal messages, rather than having
* libdbus handle them internally, which is the wrong thing for
* a monitor */
dbus_connection_set_route_peer_messages (connection, TRUE);
if (!dbus_connection_add_filter (connection, filter_func,
_DBUS_INT_TO_POINTER (binary_mode), NULL))
{