[glib/glib-2-60: 1/2] Handle an UNKNOWN NetworkManager connectivity as NONE



commit 40afd253b7f12b39e8fe54cb9867e1f7ccc30da5
Author: Antonio Larrosa <alarrosa suse com>
Date:   Tue Mar 12 18:35:10 2019 +0100

    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;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]