From 3677cd0c1952b27e6762e4b174b225bd8b0d7549 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Thu, 24 Mar 2016 10:27:23 +0100 Subject: [PATCH] flatten some config string to str (fixes #10416) --- mandaye/server.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/mandaye/server.py b/mandaye/server.py index 9025a27..fcbcd0e 100644 --- a/mandaye/server.py +++ b/mandaye/server.py @@ -73,6 +73,17 @@ def get_response(env, request, url, cookiejar=None): return response +def strize(v): + '''Flatten unicode strings to str encoded as UTF-8''' + if isinstance(v, unicode): + return v.encode('utf-8') + if isinstance(v, [list, tuple]): + return type(v)([strize(e) for e in v]) + if isinstance(v, dict): + return dict((strize(k), strize(e)) for k, e in v.iteritems()) + return v + + class MandayeApp(object): def __init__(self): @@ -115,6 +126,9 @@ class MandayeApp(object): (param, conf_file) logger.error(error) raise ImproperlyConfigured, error + for param in ['location', 'target', 'server_name', 'mapper', 'auth_type']: + if param in conf: + conf[param] = strize(conf[param]) if not config.mappers.has_key(conf['mapper']): err = '%s: mapper %s not found' % \ (conf_file, conf['mapper'])