[glib/wip/kalev/nm-1.32-propertieschanged] gnetworkmonitornm: Avoid using deprecated PropertiesChanged signal
- From: Kalev Lember <klember src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [glib/wip/kalev/nm-1.32-propertieschanged] gnetworkmonitornm: Avoid using deprecated PropertiesChanged signal
- Date: Fri, 15 Oct 2021 10:12:49 +0000 (UTC)
commit f4e14edf66871c1b3dc213c286b28fd4a1742b78
Author: Kalev Lember <klember redhat com>
Date: Fri Oct 15 06:01:53 2021 -0400
gnetworkmonitornm: Avoid using deprecated PropertiesChanged signal
Instead, use the standard PropertiesChanged signal from
org.freedesktop.DBus.Properties which exists since NetworkManager 1.2.0.
This fixes the network state monitoring to correctly work with
NetworkManager 1.32 that completely removed the deprecated
org.freedesktop.NetworkManager PropertiesChanged signal.
gio/gnetworkmonitornm.c | 49 ++++++-------------------------------------------
1 file changed, 6 insertions(+), 43 deletions(-)
---
diff --git a/gio/gnetworkmonitornm.c b/gio/gnetworkmonitornm.c
index 5a36a0ba1..a8040fb36 100644
--- a/gio/gnetworkmonitornm.c
+++ b/gio/gnetworkmonitornm.c
@@ -253,48 +253,11 @@ sync_properties (GNetworkMonitorNM *nm,
}
static void
-update_cached_property (GDBusProxy *proxy,
- const char *property_name,
- GVariantDict *dict)
+proxy_properties_changed_cb (GDBusProxy *proxy,
+ GVariant *changed_properties,
+ GStrv invalidated_properties,
+ GNetworkMonitorNM *nm)
{
- GVariant *v;
-
- v = g_variant_dict_lookup_value (dict, property_name, NULL);
- if (!v)
- return;
- g_dbus_proxy_set_cached_property (proxy, property_name, v);
- g_variant_unref (v);
-}
-
-static void
-proxy_signal_cb (GDBusProxy *proxy,
- const gchar *sender_name,
- const gchar *signal_name,
- GVariant *parameters,
- 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;
- }
-
- update_cached_property (nm->priv->proxy, "Connectivity", dict);
-
- g_variant_dict_unref (dict);
-
sync_properties (nm, TRUE);
}
@@ -361,8 +324,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);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]