From 81836c2d44802b4cca833d7775dd627e0797a7e2 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Fri, 28 Aug 2015 01:13:48 +0200 Subject: Imported Upstream version 1.0.6 --- libnm-util/nm-utils.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'libnm-util/nm-utils.c') diff --git a/libnm-util/nm-utils.c b/libnm-util/nm-utils.c index d0c2ca31..143063e7 100644 --- a/libnm-util/nm-utils.c +++ b/libnm-util/nm-utils.c @@ -332,6 +332,21 @@ nm_utils_ssid_to_utf8 (const GByteArray *ssid) "UTF-8", e1, "?", NULL, NULL, NULL); } + if (!converted) { + /* If there is still no converted string, the SSID probably + * contains characters not valid in the current locale. Convert + * the string to ASCII instead. + */ + + /* Use the printable range of 0x20-0x7E */ + gchar *valid_chars = " !\"#$%&'()*+,-./0123456789:;<=>?@" + "ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`" + "abcdefghijklmnopqrstuvwxyz{|}~"; + + converted = g_strndup ((const gchar *)ssid->data, ssid->len); + g_strcanon (converted, valid_chars, '?'); + } + return converted; } -- cgit 1.3.0-6-gf8a5