Skip to content

Commit

Permalink
fix #145
Browse files Browse the repository at this point in the history
  • Loading branch information
clowwindy committed Jul 4, 2014
1 parent 13436b2 commit b0c8e50
Showing 1 changed file with 30 additions and 2 deletions.
32 changes: 30 additions & 2 deletions shadowsocks/utils.py
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,7 @@ def get_config(is_local):
logging.info('loading config from %s' % config_path)
with open(config_path, 'rb') as f:
try:
config = json.load(f)
config = json.load(f, object_hook=_decode_dict)
except ValueError as e:
logging.error('found an error in config.json: %s',
e.message)
Expand Down Expand Up @@ -210,4 +210,32 @@ def print_server_help():
-v verbose mode
Online help: <https://github.com/clowwindy/shadowsocks>
'''
'''


def _decode_list(data):
rv = []
for item in data:
if isinstance(item, unicode):
item = item.encode('utf-8')
elif isinstance(item, list):
item = _decode_list(item)
elif isinstance(item, dict):
item = _decode_dict(item)
rv.append(item)
return rv


def _decode_dict(data):
rv = {}
for key, value in data.iteritems():
if isinstance(key, unicode):
key = key.encode('utf-8')
if isinstance(value, unicode):
value = value.encode('utf-8')
elif isinstance(value, list):
value = _decode_list(value)
elif isinstance(value, dict):
value = _decode_dict(value)
rv[key] = value
return rv

0 comments on commit b0c8e50

Please sign in to comment.