diff options
author | Amber Brown <hawkowl@atleastfornow.net> | 2018-08-02 00:54:06 +1000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-08-02 00:54:06 +1000 |
commit | da7785147df442eb9cdc1031fa5fea12b7b25334 (patch) | |
tree | 4a10c31ba0cda805cd31047cdbb4aa9ccb32a8ce /synapse/http/servlet.py | |
parent | Merge pull request #3543 from bebehei/docker (diff) | |
download | synapse-da7785147df442eb9cdc1031fa5fea12b7b25334.tar.xz |
Python 3: Convert some unicode/bytes uses (#3569)
Diffstat (limited to 'synapse/http/servlet.py')
-rw-r--r-- | synapse/http/servlet.py | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/synapse/http/servlet.py b/synapse/http/servlet.py index 882816dc8f..69f7085291 100644 --- a/synapse/http/servlet.py +++ b/synapse/http/servlet.py @@ -171,8 +171,16 @@ def parse_json_value_from_request(request, allow_empty_body=False): if not content_bytes and allow_empty_body: return None + # Decode to Unicode so that simplejson will return Unicode strings on + # Python 2 try: - content = json.loads(content_bytes) + content_unicode = content_bytes.decode('utf8') + except UnicodeDecodeError: + logger.warn("Unable to decode UTF-8") + raise SynapseError(400, "Content not JSON.", errcode=Codes.NOT_JSON) + + try: + content = json.loads(content_unicode) except Exception as e: logger.warn("Unable to parse JSON: %s", e) raise SynapseError(400, "Content not JSON.", errcode=Codes.NOT_JSON) |