diff options
| author | Michael Biebl <biebl@debian.org> | 2015-08-28 01:14:03 +0200 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2015-08-28 01:14:03 +0200 |
| commit | 235f4801bff27219c6448c83874b5d9f8686ce58 (patch) | |
| tree | 7084e0f7d7a63901c21b56b67fbd3e203d5dbb80 /libnm-util/nm-utils.c | |
| parent | 79436717ed9d593754a40402b6dc1b0cabac605e (diff) | |
| parent | 81836c2d44802b4cca833d7775dd627e0797a7e2 (diff) | |
Merge tag 'upstream/1.0.6'
Upstream version 1.0.6
Diffstat (limited to 'libnm-util/nm-utils.c')
| -rw-r--r-- | libnm-util/nm-utils.c | 15 |
1 files changed, 15 insertions, 0 deletions
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; } |