[gnome-control-center] network: implement handling for OWE TM



commit 533b698f6087b46241cbc89170cf89594a344b53
Author: David Bauer <mail david-bauer net>
Date:   Sat Jun 18 13:04:12 2022 +0200

    network: implement handling for OWE TM
    
    Implement handling for OWE-TM networks.
    
     * Correctly display encryption type when connected to a OWE-TM network
       with an open profile (Previously showed as WPA2
     * Mask out hidden transition SSID when connected to the OWE-TM network
     * Don't display OWE-TM network with lock icon
    
    Signed-off-by: David Bauer <mail david-bauer net>

 panels/network/cc-wifi-connection-list.c           | 10 +++++++++-
 panels/network/cc-wifi-connection-row.c            | 11 +++++++++--
 panels/network/connection-editor/ce-page-details.c |  5 +++++
 3 files changed, 23 insertions(+), 3 deletions(-)
---
diff --git a/panels/network/cc-wifi-connection-list.c b/panels/network/cc-wifi-connection-list.c
index 4bd94c43b..df5f388c3 100644
--- a/panels/network/cc-wifi-connection-list.c
+++ b/panels/network/cc-wifi-connection-list.c
@@ -298,6 +298,7 @@ on_device_ap_added_cb (CcWifiConnectionList *self,
                        NMDeviceWifi         *device)
 {
   g_autoptr(GPtrArray) connections = NULL;
+  NM80211ApSecurityFlags rsn_flags;
   CcWifiConnectionRow *row;
   GBytes *ap_ssid;
   g_autoptr(GBytes) ssid = NULL;
@@ -358,11 +359,18 @@ on_device_ap_added_cb (CcWifiConnectionList *self,
     return;
 
   /* The AP is not compatible to any known connection, generate an entry for the
-   * SSID or add to existing one. However, not for hidden APs that don't have an SSID.
+   * SSID or add to existing one. However, not for hidden APs that don't have an SSID
+   * or a hidden OWE transition network.
    */
   ap_ssid = nm_access_point_get_ssid (ap);
   if (ap_ssid == NULL)
     return;
+
+  /* Skip OWE-TM network with OWE RSN */
+  rsn_flags = nm_access_point_get_rsn_flags (ap);
+  if (rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_OWE && rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_OWE_TM)
+    return;
+
   ssid = new_hashable_ssid (ap_ssid);
 
   g_hash_table_insert (self->ap_ssid_cache, ap, g_bytes_ref (ssid));
diff --git a/panels/network/cc-wifi-connection-row.c b/panels/network/cc-wifi-connection-row.c
index fdae62056..ae1be3766 100644
--- a/panels/network/cc-wifi-connection-row.c
+++ b/panels/network/cc-wifi-connection-row.c
@@ -59,7 +59,8 @@ typedef enum
   NM_AP_SEC_WPA,
   NM_AP_SEC_WPA2,
   NM_AP_SEC_SAE,
-  NM_AP_SEC_OWE
+  NM_AP_SEC_OWE,
+  NM_AP_SEC_OWE_TM
 } NMAccessPointSecurity;
 
 G_DEFINE_TYPE (CcWifiConnectionRow, cc_wifi_connection_row, ADW_TYPE_ACTION_ROW)
@@ -109,6 +110,12 @@ get_access_point_security (NMAccessPoint *ap)
     {
       type = NM_AP_SEC_OWE;
     }
+#endif
+#if NM_CHECK_VERSION(1,26,0)
+  else if (rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_OWE_TM)
+    {
+      type = NM_AP_SEC_OWE_TM;
+    }
 #endif
   else
     {
@@ -255,7 +262,7 @@ update_ui (CcWifiConnectionRow *self)
   gtk_widget_set_visible (GTK_WIDGET (self->active_label), active);
   gtk_widget_set_visible (GTK_WIDGET (self->options_button), active || connecting);
 
-  if (security != NM_AP_SEC_UNKNOWN && security != NM_AP_SEC_NONE && security != NM_AP_SEC_OWE)
+  if (security != NM_AP_SEC_UNKNOWN && security != NM_AP_SEC_NONE && security != NM_AP_SEC_OWE && security 
!= NM_AP_SEC_OWE_TM)
     {
       const gchar *icon_name = "lock-small-symbolic";
 
diff --git a/panels/network/connection-editor/ce-page-details.c 
b/panels/network/connection-editor/ce-page-details.c
index d57a291a8..7c7aa9e4a 100644
--- a/panels/network/connection-editor/ce-page-details.c
+++ b/panels/network/connection-editor/ce-page-details.c
@@ -112,6 +112,11 @@ get_ap_security_string (NMAccessPoint *ap)
                        /* TRANSLATORS: this Enhanced Open WiFi security */
                         g_string_append_printf (str, "%s, ", _("Enhanced Open"));
                }
+#endif
+#if NM_CHECK_VERSION(1,26,0)
+               else if (rsn_flags & NM_802_11_AP_SEC_KEY_MGMT_OWE_TM) {
+                        /* Connected to open OWE-TM network. */
+               }
 #endif
                else
 #endif


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