Blame SOURCES/0001-network-Fix-OWE-settings.patch

3475b8
From 5b280e46029f1d857fb69ccc0db2e63b8a0e3c82 Mon Sep 17 00:00:00 2001
3475b8
From: Ana Cabral <acabral@redhat.com>
3475b8
Date: Mon, 21 Feb 2022 21:49:29 +0100
3475b8
Subject: [PATCH] network: Fix OWE settings
3475b8
3475b8
Enhanced Open (OWE) is not being saved properly from connection-editor.
3475b8
When we create a Wi-Fi connection using Enhanced Open (OWE) Security
3475b8
from nm-connection-editor and save it, it was not being saved and the
3475b8
security was being set as "None", with Wireless Security Setting
3475b8
being discarded. This is fixed by this commit. The fix is also being
3475b8
done in libnma (implementing OWE in libnma,
3475b8
https://gitlab.gnome.org/GNOME/libnma/-/issues/9), but this commit
3475b8
fixes meanwhile it gets ready.
3475b8
3475b8
It was solved by adding treatment for the case in which owe was set.
3475b8
OWE is not treated anymore in the same case as None.
3475b8
3475b8
https://gitlab.gnome.org/GNOME/gnome-control-center/-/issues/1521
3475b8
---
3475b8
 .../connection-editor/ce-page-security.c      | 23 +++++++++++++++----
3475b8
 1 file changed, 19 insertions(+), 4 deletions(-)
3475b8
3475b8
diff --git a/panels/network/connection-editor/ce-page-security.c b/panels/network/connection-editor/ce-page-security.c
3475b8
index 52efb9da1..ce42be146 100644
3475b8
--- a/panels/network/connection-editor/ce-page-security.c
3475b8
+++ b/panels/network/connection-editor/ce-page-security.c
3475b8
@@ -435,10 +435,25 @@ validate (CEPage        *page,
3475b8
 
3475b8
                 wireless_security_unref (sec);
3475b8
         } else {
3475b8
-                /* No security, unencrypted */
3475b8
-                nm_connection_remove_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY);
3475b8
-                nm_connection_remove_setting (connection, NM_TYPE_SETTING_802_1X);
3475b8
-                valid = TRUE;
3475b8
+
3475b8
+    		if (gtk_combo_box_get_active ((CE_PAGE_SECURITY (page))->security_combo) == 0) {
3475b8
+    			/* No security, unencrypted */
3475b8
+    			nm_connection_remove_setting (connection, NM_TYPE_SETTING_WIRELESS_SECURITY);
3475b8
+    			nm_connection_remove_setting (connection, NM_TYPE_SETTING_802_1X);
3475b8
+    			valid = TRUE;
3475b8
+    		} else {
3475b8
+    			/* owe case:
3475b8
+    			 * fill the connection manually until libnma implements OWE wireless security
3475b8
+    			 */
3475b8
+    			NMSetting *sws;
3475b8
+
3475b8
+    			sws = nm_setting_wireless_security_new ();
3475b8
+    			g_object_set (sws, NM_SETTING_WIRELESS_SECURITY_KEY_MGMT, "owe", NULL);
3475b8
+    			nm_connection_add_setting (connection, sws);
3475b8
+    			nm_connection_remove_setting (connection, NM_TYPE_SETTING_802_1X);
3475b8
+    			valid = TRUE;
3475b8
+    		}
3475b8
+
3475b8
         }
3475b8
 
3475b8
         return valid;
3475b8
-- 
3475b8
2.35.1
3475b8