mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-02-23 18:52:09 +01:00
gnetworkmonitornm: Stop using removed PropertiesChanged signal
Use the org.freedesktop.DBus.Properties interface to listen to PropertiesChanged signals on /org/freedesktop/NetworkManager. NetworkManager used to provide its own legacy PropertiesChanged signal, but that was dropped in https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/853 This requires NetworkManager >= 1.2 (2016) Fixes: #2505 Bug-Ubuntu: https://bugs.launchpad.net/bugs/1946196
This commit is contained in:
parent
ffc00caa73
commit
8e0a5d9879
@ -267,29 +267,14 @@ update_cached_property (GDBusProxy *proxy,
|
||||
}
|
||||
|
||||
static void
|
||||
proxy_signal_cb (GDBusProxy *proxy,
|
||||
const gchar *sender_name,
|
||||
const gchar *signal_name,
|
||||
GVariant *parameters,
|
||||
GNetworkMonitorNM *nm)
|
||||
proxy_properties_changed_cb (GDBusProxy *proxy,
|
||||
GVariant *changed_properties,
|
||||
GStrv invalidated_properties,
|
||||
GNetworkMonitorNM *nm)
|
||||
{
|
||||
GVariant *asv;
|
||||
GVariantDict *dict;
|
||||
|
||||
if (g_strcmp0 (signal_name, "PropertiesChanged") != 0)
|
||||
return;
|
||||
|
||||
g_variant_get (parameters, "(@a{sv})", &asv);
|
||||
if (!asv)
|
||||
return;
|
||||
|
||||
dict = g_variant_dict_new (asv);
|
||||
g_variant_unref (asv);
|
||||
if (!dict)
|
||||
{
|
||||
g_warning ("Failed to handle PropertiesChanged signal from NetworkManager");
|
||||
return;
|
||||
}
|
||||
dict = g_variant_dict_new (changed_properties);
|
||||
|
||||
update_cached_property (nm->priv->proxy, "Connectivity", dict);
|
||||
|
||||
@ -361,8 +346,8 @@ g_network_monitor_nm_initable_init (GInitable *initable,
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
nm->priv->signal_id = g_signal_connect (G_OBJECT (proxy), "g-signal",
|
||||
G_CALLBACK (proxy_signal_cb), nm);
|
||||
nm->priv->signal_id = g_signal_connect (G_OBJECT (proxy), "g-properties-changed",
|
||||
G_CALLBACK (proxy_properties_changed_cb), nm);
|
||||
nm->priv->proxy = proxy;
|
||||
sync_properties (nm, FALSE);
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user