summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2018-08-16 21:36:13 +0000
committerMatthias Clasen <mclasen@redhat.com>2018-08-16 21:36:13 +0000
commit18997de7e9c3aa5caedd49ba52715d0de5fa4aaf (patch)
tree5dd817db1e8fadf33d760034b64d3dbe973ace65
parent1a30a6a1d03ac4a6a2f943fba5bb3799772458d9 (diff)
downloadglib-network-monitor-fix.tar.gz
network monitor portal: update properties initiallynetwork-monitor-fix
With version 2, we need to query the values explicitly. The properties made this automatic.
-rw-r--r--gio/gnetworkmonitorportal.c21
1 files changed, 17 insertions, 4 deletions
diff --git a/gio/gnetworkmonitorportal.c b/gio/gnetworkmonitorportal.c
index 16249ac55..bce8a338a 100644
--- a/gio/gnetworkmonitorportal.c
+++ b/gio/gnetworkmonitorportal.c
@@ -182,6 +182,15 @@ got_connectivity (GObject *source,
}
static void
+update_properties (GDBusProxy *proxy,
+ GNetworkMonitorPortal *nm)
+{
+ g_dbus_proxy_call (proxy, "GetConnectivity", NULL, 0, -1, NULL, got_connectivity, nm);
+ g_dbus_proxy_call (proxy, "GetMetered", NULL, 0, -1, NULL, got_metered, nm);
+ g_dbus_proxy_call (proxy, "GetAvailable", NULL, 0, -1, NULL, got_available, nm);
+}
+
+static void
proxy_signal (GDBusProxy *proxy,
const char *sender,
const char *signal,
@@ -200,9 +209,7 @@ proxy_signal (GDBusProxy *proxy,
}
else if (nm->priv->version == 2)
{
- g_dbus_proxy_call (proxy, "GetConnectivity", NULL, 0, -1, NULL, got_connectivity, nm);
- g_dbus_proxy_call (proxy, "GetMetered", NULL, 0, -1, NULL, got_metered, nm);
- g_dbus_proxy_call (proxy, "GetAvailable", NULL, 0, -1, NULL, got_available, nm);
+ update_properties (proxy, nm);
}
}
@@ -326,7 +333,13 @@ g_network_monitor_portal_initable_init (GInitable *initable,
nm->priv->has_network = glib_network_available_in_sandbox ();
nm->priv->version = version;
- return initable_parent_iface->init (initable, cancellable, error);
+ if (!initable_parent_iface->init (initable, cancellable, error))
+ return FALSE;
+
+ if (nm->priv->has_network && nm->priv->version == 2)
+ update_properties (proxy, nm);
+
+ return TRUE;
}
static void