From 2932a58cd5e968d3f398f00ae9f78688c826606e Mon Sep 17 00:00:00 2001 From: Antonio Larrosa Date: Tue, 12 Mar 2019 18:35:10 +0100 Subject: [PATCH] Handle an UNKNOWN NetworkManager connectivity as NONE nm_conn_to_g_conn already handles UNKNOWN like NONE (returning G_NETWORK_CONNECTIVITY_LOCAL in both cases). So in sync_properties we should also set new_connectivity to G_NETWORK_CONNECTIVITY_LOCAL for both NM_CONNECTIVITY_UNKNOWN and NM_CONNECTIVITY_NONE. This has the added benefit that when NetworkManager returns the network connectivity is UNKNOWN, we set network_available to FALSE as it should be. Previously, there were cases in a laptop with no network access, that g_network_monitor_get_network_available returned true, which was wrong and is also fixed with this commit. --- gio/gnetworkmonitornm.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gio/gnetworkmonitornm.c b/gio/gnetworkmonitornm.c index 5bc8c925a..4e2a35e8a 100644 --- a/gio/gnetworkmonitornm.c +++ b/gio/gnetworkmonitornm.c @@ -167,7 +167,8 @@ sync_properties (GNetworkMonitorNM *nm, nm_connectivity = g_variant_get_uint32 (v); g_variant_unref (v); - if (nm_connectivity == NM_CONNECTIVITY_NONE) + if (nm_connectivity == NM_CONNECTIVITY_UNKNOWN || + nm_connectivity == NM_CONNECTIVITY_NONE) { new_network_available = FALSE; new_network_metered = FALSE;