[gnome-control-center/gnome-3-18] network: fix some SSID escaping issues
- From: Dan Williams <dcbw src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-control-center/gnome-3-18] network: fix some SSID escaping issues
- Date: Tue, 7 Jun 2016 15:57:37 +0000 (UTC)
commit 60af2f54b1d87944b0ef0241833eec3ac2b0efb3
Author: Dan Williams <dcbw redhat com>
Date: Fri Jun 3 11:47:07 2016 -0500
network: fix some SSID escaping issues
nm_utils_escape_ssid() should only be used for debugging purposes,
but was used in one place for UI display and another place
for doing actual AP comparison. Instead, the comparison should
just operate on the SSID bytes, and the UI display should use
nm_utils_ssid_to_utf8() which tries to interpret non-ASCII
characters for better display.
https://bugzilla.gnome.org/show_bug.cgi?id=767205
https://bugzilla.redhat.com/show_bug.cgi?id=1336714
panels/network/net-device-wifi.c | 27 +++++++++++++--------------
1 files changed, 13 insertions(+), 14 deletions(-)
---
diff --git a/panels/network/net-device-wifi.c b/panels/network/net-device-wifi.c
index d2d8c95..53a4594 100644
--- a/panels/network/net-device-wifi.c
+++ b/panels/network/net-device-wifi.c
@@ -692,11 +692,11 @@ is_8021x (NMDevice *device,
static void
wireless_try_to_connect (NetDeviceWifi *device_wifi,
- const gchar *ssid_target,
+ const GByteArray *ssid,
const gchar *ap_object_path)
{
- const GByteArray *ssid;
- const gchar *ssid_tmp;
+ const GByteArray *match_ssid;
+ const gchar *ssid_target;
GSList *list, *l;
NMConnection *connection_activate = NULL;
NMDevice *device;
@@ -713,6 +713,7 @@ wireless_try_to_connect (NetDeviceWifi *device_wifi,
if (device == NULL)
goto out;
+ ssid_target = nm_utils_escape_ssid (ssid->data, ssid->len);
g_debug ("try to connect to WIFI network %s [%s]",
ssid_target, ap_object_path);
@@ -720,17 +721,18 @@ wireless_try_to_connect (NetDeviceWifi *device_wifi,
list = net_device_get_valid_connections (NET_DEVICE (device_wifi));
g_debug ("%i suitable remote connections to check", g_slist_length (list));
for (l = list; l; l = g_slist_next (l)) {
+ const GByteArray *match_ssid;
NMConnection *connection;
connection = NM_CONNECTION (l->data);
setting_wireless = nm_connection_get_setting_wireless (connection);
if (!NM_IS_SETTING_WIRELESS (setting_wireless))
continue;
- ssid = nm_setting_wireless_get_ssid (setting_wireless);
- if (ssid == NULL)
+ match_ssid = nm_setting_wireless_get_ssid (setting_wireless);
+ if (match_ssid == NULL)
continue;
- ssid_tmp = nm_utils_escape_ssid (ssid->data, ssid->len);
- if (g_strcmp0 (ssid_target, ssid_tmp) == 0) {
+ if (ssid->len == match_ssid->len &&
+ memcmp (ssid->data, match_ssid->data, ssid->len) == 0) {
g_debug ("we found an existing connection %s to activate!",
nm_connection_get_id (connection));
connection_activate = connection;
@@ -1517,7 +1519,7 @@ make_row (GtkSizeGroup *rows,
GtkWidget *box;
GtkWidget *button_stack;
GtkWidget *image;
- const gchar *title;
+ gchar *title;
gboolean active;
gboolean in_range;
gboolean connecting;
@@ -1544,8 +1546,6 @@ make_row (GtkSizeGroup *rows,
timestamp = 0;
}
- title = nm_utils_escape_ssid (ssid->data, ssid->len);
-
if (ap != NULL) {
in_range = TRUE;
active = (ap == active_ap) && (state == NM_DEVICE_STATE_ACTIVATED);
@@ -1594,7 +1594,9 @@ make_row (GtkSizeGroup *rows,
if (check_out)
*check_out = widget;
+ title = nm_utils_ssid_to_utf8 (ssid);
widget = gtk_label_new (title);
+ g_free (title);
gtk_widget_set_margin_top (widget, 12);
gtk_widget_set_margin_bottom (widget, 12);
gtk_box_pack_start (GTK_BOX (row_box), widget, FALSE, FALSE, 0);
@@ -1957,16 +1959,13 @@ ap_activated (GtkListBox *list, GtkListBoxRow *row, NetDeviceWifi *device_wifi)
connection_activate_cb, device_wifi);
} else {
const GByteArray *ssid;
- gchar *ssid_text;
const gchar *object_path;
gtk_stack_set_visible_child_name (GTK_STACK (stack), "spinner");
ssid = nm_access_point_get_ssid (ap);
- ssid_text = g_markup_escape_text (nm_utils_escape_ssid (ssid->data, ssid->len), -1);
object_path = nm_object_get_path (NM_OBJECT (ap));
- wireless_try_to_connect (device_wifi, ssid_text, object_path);
- g_free (ssid_text);
+ wireless_try_to_connect (device_wifi, ssid, object_path);
}
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]