[glib/wip/kalev/nm-1.32-propertieschanged] gnetworkmonitornm: Avoid using deprecated PropertiesChanged signal




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]