summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erik@matrix.org>2018-11-27 10:32:30 +0000
committerBrendan Abolivier <babolivier@matrix.org>2019-02-13 20:54:27 +0000
commitb8deaa077e82a1d1418f704659abaa609e6d400b (patch)
treea3c09e213da196e1da087b59397a95ecf4196579
parentMake synapse talk HTTP to the local proxy only when federating (diff)
downloadsynapse-b8deaa077e82a1d1418f704659abaa609e6d400b.tar.xz
Strip signatures and hashes on outgoing events
-rwxr-xr-xdocker/proxy/proxybin0 -> 6311584 bytes
-rw-r--r--synapse/event_auth.py2
-rw-r--r--synapse/federation/transaction_queue.py3
-rw-r--r--synapse/federation/units.py22
4 files changed, 24 insertions, 3 deletions
diff --git a/docker/proxy/proxy b/docker/proxy/proxy
new file mode 100755
index 0000000000..8d94082137
--- /dev/null
+++ b/docker/proxy/proxy
Binary files differdiff --git a/synapse/event_auth.py b/synapse/event_auth.py
index c81d8e6729..f41ad3b63b 100644
--- a/synapse/event_auth.py
+++ b/synapse/event_auth.py
@@ -46,7 +46,7 @@ def check(event, auth_events, do_sig_check=True, do_size_check=True):
     if not hasattr(event, "room_id"):
         raise AuthError(500, "Event has no room_id: %s" % event)
 
-    if do_sig_check:
+    if False and do_sig_check:  # Disable all sig checks for meshsim
         sender_domain = get_domain_from_id(event.sender)
         event_id_domain = get_domain_from_id(event.event_id)
 
diff --git a/synapse/federation/transaction_queue.py b/synapse/federation/transaction_queue.py
index 099ace28c1..c021add936 100644
--- a/synapse/federation/transaction_queue.py
+++ b/synapse/federation/transaction_queue.py
@@ -519,7 +519,7 @@ class TransactionQueue(object):
         except FederationDeniedError as e:
             logger.info(e)
         except Exception as e:
-            logger.warn(
+            logger.exception(
                 "TX [%s] Failed to send transaction: %s",
                 destination,
                 e,
@@ -575,6 +575,7 @@ class TransactionQueue(object):
         success = True
 
         logger.debug("TX [%s] _attempt_new_transaction", destination)
+        logger.debug("TX [%s] _attempt_new_transaction", destination)
 
         txn_id = str(self._next_txn_id)
 
diff --git a/synapse/federation/units.py b/synapse/federation/units.py
index 025a79c022..d278475d9a 100644
--- a/synapse/federation/units.py
+++ b/synapse/federation/units.py
@@ -117,6 +117,26 @@ class Transaction(JsonEncodedObject):
                 "Require 'transaction_id' to construct a Transaction"
             )
 
-        kwargs["pdus"] = [p.get_pdu_json() for p in pdus]
+        kwargs["pdus"] = [
+            _mangle_pdu(p.get_pdu_json())
+            for p in pdus
+        ]
 
         return Transaction(**kwargs)
+
+
+def _mangle_pdu(pdu_json):
+    pdu_json.pop("hashes", None)
+    pdu_json.pop("signatures", None)
+
+    pdu_json["auth_events"] = list(_strip_hashes(pdu_json["auth_events"]))
+    pdu_json["prev_events"] = list(_strip_hashes(pdu_json["prev_events"]))
+
+    return pdu_json
+
+
+def _strip_hashes(iterable):
+    return (
+        (e, {})
+        for e, hashes in iterable
+    )