From: Arvin Schnell Date: Wed, 8 Aug 2012 15:05:19 +0000 (+0200) Subject: - work on dbus interface X-Git-Tag: v0.1.3~157 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b394232fd73a31885ba070a12eada240dd6c0d6e;p=thirdparty%2Fsnapper.git - work on dbus interface --- diff --git a/dbus/DBusMainLoop.cc b/dbus/DBusMainLoop.cc index 8ac8da58..c46fb80e 100644 --- a/dbus/DBusMainLoop.cc +++ b/dbus/DBusMainLoop.cc @@ -46,7 +46,10 @@ namespace DBus dbus_connection_set_wakeup_main_function(conn, wakeup_main, this, NULL); - add_match("type='signal', interface='" DBUS_INTERFACE_DBUS "', member='NameOwnerChanged'"); + // Filtering for the sender doesn't work for me. So also check the + // sender later when handling the signal. + add_match("type='signal', sender='" DBUS_SERVICE_DBUS "', path='" DBUS_PATH_DBUS "', " + "interface='" DBUS_INTERFACE_DBUS "', member='NameOwnerChanged'"); } @@ -290,7 +293,8 @@ namespace DBus { signal(msg); - if (msg.is_signal(DBUS_INTERFACE_DBUS, "NameOwnerChanged")) + if (msg.get_sender() == DBUS_SERVICE_DBUS && + msg.is_signal(DBUS_INTERFACE_DBUS, "NameOwnerChanged")) { string name, old_owner, new_owner;