On Tue, 2013-06-18 at 14:55 +0200, Martin Kolman wrote:
The Fedora GeoIP API returns the timezone in Unicode. This can cause
issues when the timezone is combined with other strings
(for example concatenated with some translated strings).
Therefore, the timezone needs to be converted
to a UTF-8 encoded string.
Signed-off-by: Martin Kolman <mkolman(a)gmail.com>
---
pyanaconda/geoloc.py | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/pyanaconda/geoloc.py b/pyanaconda/geoloc.py
index 2fc8427..5a6da14 100644
--- a/pyanaconda/geoloc.py
+++ b/pyanaconda/geoloc.py
@@ -475,6 +475,13 @@ class FedoraGeoIPProvider(GeolocationBackend):
territory = json_reply.get("country_code", None)
timezone_source = "GeoIP"
timezone_code = json_reply.get("time_zone", None)
+
+ if timezone_code is not None:
+ # the timezone code is returned as Unicode,
+ # it needs to be converted to UTF-8 encoded string,
+ # otherwise some string processing in Anaconda might fail
+ timezone_code = timezone_code.encode("utf8")
+
# check if the timezone returned by the API is valid
if not timezone.is_valid_timezone(timezone_code):
# try to get a timezone from the territory code
ACK, we do the
same with the timezones returned by the pytz module.
--
Vratislav Podzimek
Anaconda Rider | Red Hat, Inc. | Brno - Czech Republic