mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-08-10 11:14:05 +02:00
GDBusProxy: Drop unexpected signals
If we have an expected interface and receive a signal not mentioned in the interface, simply drop it. This way, the application won't have to check for the signal itself. This was pointed out in https://bugzilla.gnome.org/show_bug.cgi?id=642724#c5 Signed-off-by: David Zeuthen <davidz@redhat.com>
This commit is contained in:
@@ -755,6 +755,14 @@ on_signal_received (GDBusConnection *connection,
|
|||||||
if (proxy->priv->name_owner != NULL && g_strcmp0 (sender_name, proxy->priv->name_owner) != 0)
|
if (proxy->priv->name_owner != NULL && g_strcmp0 (sender_name, proxy->priv->name_owner) != 0)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
|
if (proxy->priv->expected_interface != NULL)
|
||||||
|
{
|
||||||
|
const GDBusSignalInfo *info;
|
||||||
|
info = g_dbus_interface_info_lookup_signal (proxy->priv->expected_interface, signal_name);
|
||||||
|
if (info == NULL)
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
|
|
||||||
g_signal_emit (proxy,
|
g_signal_emit (proxy,
|
||||||
signals[SIGNAL_SIGNAL],
|
signals[SIGNAL_SIGNAL],
|
||||||
0,
|
0,
|
||||||
|
Reference in New Issue
Block a user