summary refs log tree commit diff
path: root/synapse/replication/http/_base.py
diff options
context:
space:
mode:
authorErik Johnston <erikj@jki.re>2019-01-30 14:19:52 +0000
committerAmber Brown <hawkowl@atleastfornow.net>2019-01-30 14:19:52 +0000
commita4f52a33fefc537eeb1829773f2dbdbdaa246d1f (patch)
tree777279fa6fd2f695f5cb6741b54818622df1c219 /synapse/replication/http/_base.py
parentACME config cleanups (#4525) (diff)
downloadsynapse-a4f52a33fefc537eeb1829773f2dbdbdaa246d1f.tar.xz
Fix replication for room v3 (#4523)
* Fix replication for room v3

We were not correctly quoting the path fragments over http replication,
which meant that it exploded when the event IDs had a slash in them

* Newsfile
Diffstat (limited to 'synapse/replication/http/_base.py')
-rw-r--r--synapse/replication/http/_base.py5
1 files changed, 4 insertions, 1 deletions
diff --git a/synapse/replication/http/_base.py b/synapse/replication/http/_base.py
index 5e5376cf58..e81456ab2b 100644
--- a/synapse/replication/http/_base.py
+++ b/synapse/replication/http/_base.py
@@ -127,7 +127,10 @@ class ReplicationEndpoint(object):
         def send_request(**kwargs):
             data = yield cls._serialize_payload(**kwargs)
 
-            url_args = [urllib.parse.quote(kwargs[name]) for name in cls.PATH_ARGS]
+            url_args = [
+                urllib.parse.quote(kwargs[name], safe='')
+                for name in cls.PATH_ARGS
+            ]
 
             if cls.CACHE:
                 txn_id = random_string(10)