diff options
-rw-r--r-- | dbus/dbus-gproxy.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/dbus/dbus-gproxy.c b/dbus/dbus-gproxy.c index 2fc52f9..c3ae9ec 100644 --- a/dbus/dbus-gproxy.c +++ b/dbus/dbus-gproxy.c @@ -1247,14 +1247,17 @@ dbus_g_proxy_manager_filter (DBusConnection *connection, char *tri; GSList *full_list; GSList *owned_names; GSList *tmp; const char *sender; + sender = dbus_message_get_sender (message); + /* First we handle NameOwnerChanged internally */ - if (dbus_message_is_signal (message, + if (g_strcmp0 (sender, DBUS_SERVICE_DBUS) == 0 && + dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) { const char *name; const char *prev_owner; const char *new_owner; @@ -1277,14 +1280,12 @@ dbus_g_proxy_manager_filter (DBusConnection *connection, else if (manager->owner_names != NULL) { dbus_g_proxy_manager_replace_name_owner (manager, name, prev_owner, new_owner); } } - sender = dbus_message_get_sender (message); - /* dbus spec requires these, libdbus validates */ g_assert (dbus_message_get_path (message) != NULL); g_assert (dbus_message_get_interface (message) != NULL); g_assert (dbus_message_get_member (message) != NULL); tri = tristring_from_message (message); |