summaryrefslogtreecommitdiff
path: root/owe-support.patch
blob: 4dcb66f573f0fabe60b3e49be9ddd0439aa7dc75 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
From ad431c28788ac1a4ec815cc4985cdb09a1a82226 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Mon, 11 Sep 2023 19:20:14 +0200
Subject: [PATCH 1/2] status/network: Fix fallback SSID label

We currently only return the fallback label if the string returned
from the ssid was invalid or couldn't be transformed to UTF-8.

If the ssid parameter itself is empty, we throw an error.

Handle this case as well, as callers otherwise would need to duplicate
the existing error path themselves.
---
 js/ui/status/network.js | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index 1f17ca8f97..99a8d51f82 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -67,7 +67,9 @@ function signalToIcon(value) {
 }
 
 function ssidToLabel(ssid) {
-    let label = NM.utils_ssid_to_utf8(ssid.get_data());
+    let label;
+    if (ssid)
+        label = NM.utils_ssid_to_utf8(ssid.get_data());
     if (!label)
         label = _("<unknown>");
     return label;
-- 
2.41.0


From 0409f18446cb55a45187e00feadb12e4389381dd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Florian=20M=C3=BCllner?= <fmuellner@gnome.org>
Date: Wed, 30 Aug 2023 01:47:00 +0200
Subject: [PATCH 2/2] status/network: Use connection name with hidden AP

When connected to an OWE transition network, NetworkManager
reports the connected API with a hidden SSID.

Handle this by using the active connection's name before
ultimately falling back to the device name.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6918

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2927>
---
 js/ui/status/network.js | 28 +++++++++++++++++++---------
 1 file changed, 19 insertions(+), 9 deletions(-)

diff --git a/js/ui/status/network.js b/js/ui/status/network.js
index 99a8d51f82..b407d8e78d 100644
--- a/js/ui/status/network.js
+++ b/js/ui/status/network.js
@@ -1395,26 +1395,36 @@ var NMDeviceWireless = class {
     _getStatus() {
         let ap = this._device.active_access_point;
 
-        if (this._isHotSpotMaster())
+        if (this._isHotSpotMaster()) {
             /* Translators: %s is a network identifier */
             return _("%s Hotspot Active").format(this._description);
-        else if (this._device.state >= NM.DeviceState.PREPARE &&
-                 this._device.state < NM.DeviceState.ACTIVATED)
+        } else if (this._device.state >= NM.DeviceState.PREPARE &&
+                 this._device.state < NM.DeviceState.ACTIVATED) {
             /* Translators: %s is a network identifier */
             return _("%s Connecting").format(this._description);
-        else if (ap)
-            return ssidToLabel(ap.get_ssid());
-        else if (!this._client.wireless_hardware_enabled)
+        } else if (ap) {
+            const ssid = ap.get_ssid();
+            if (ssid)
+                return ssidToLabel(ssid);
+
+            // Use connection name when connected to hidden AP
+            const activeConnection = this._device.get_active_connection();
+            if (activeConnection)
+                return activeConnection.connection.get_id();
+
+            return ssidToLabel(null);
+        } else if (!this._client.wireless_hardware_enabled) {
             /* Translators: %s is a network identifier */
             return _("%s Hardware Disabled").format(this._description);
-        else if (!this._client.wireless_enabled)
+        } else if (!this._client.wireless_enabled) {
             /* Translators: %s is a network identifier */
             return _("%s Off").format(this._description);
-        else if (this._device.state == NM.DeviceState.DISCONNECTED)
+        } else if (this._device.state == NM.DeviceState.DISCONNECTED) {
             /* Translators: %s is a network identifier */
             return _("%s Not Connected").format(this._description);
-        else
+        } else {
             return '';
+        }
     }
 
     _getMenuIcon() {
-- 
2.41.0