diff --git a/synapse/app/pusher.py b/synapse/app/pusher.py
index 9ac26d52c6..4f1d18ab5f 100644
--- a/synapse/app/pusher.py
+++ b/synapse/app/pusher.py
@@ -43,6 +43,7 @@ from daemonize import Daemonize
import sys
import logging
+import gc
logger = logging.getLogger("synapse.app.pusher")
@@ -284,7 +285,7 @@ def start(config_options):
logger.info("Running")
change_resource_limit(config.soft_file_limit)
if config.gc_thresholds:
- ps.set_threshold(config.gc_thresholds)
+ gc.set_threshold(*config.gc_thresholds)
reactor.run()
def start():
diff --git a/synapse/app/synchrotron.py b/synapse/app/synchrotron.py
index 160db8637e..8cf5bbbb6d 100644
--- a/synapse/app/synchrotron.py
+++ b/synapse/app/synchrotron.py
@@ -56,6 +56,7 @@ from daemonize import Daemonize
import sys
import logging
import contextlib
+import gc
import ujson as json
logger = logging.getLogger("synapse.app.synchrotron")
@@ -436,7 +437,7 @@ def start(config_options):
logger.info("Running")
change_resource_limit(config.soft_file_limit)
if config.gc_thresholds:
- ss.set_threshold(config.gc_thresholds)
+ gc.set_threshold(*config.gc_thresholds)
reactor.run()
def start():
diff --git a/synapse/federation/federation_server.py b/synapse/federation/federation_server.py
index fe92457ba1..2a589524a4 100644
--- a/synapse/federation/federation_server.py
+++ b/synapse/federation/federation_server.py
@@ -193,13 +193,16 @@ class FederationServer(FederationBase):
)
for event in auth_chain:
- event.signatures.update(
- compute_event_signature(
- event,
- self.hs.hostname,
- self.hs.config.signing_key[0]
+ # We sign these again because there was a bug where we
+ # incorrectly signed things the first time round
+ if self.hs.is_mine_id(event.event_id):
+ event.signatures.update(
+ compute_event_signature(
+ event,
+ self.hs.hostname,
+ self.hs.config.signing_key[0]
+ )
)
- )
else:
raise NotImplementedError("Specify an event")
diff --git a/synapse/handlers/federation.py b/synapse/handlers/federation.py
index c2df43e2f6..6c0bc7eafa 100644
--- a/synapse/handlers/federation.py
+++ b/synapse/handlers/federation.py
@@ -1018,13 +1018,16 @@ class FederationHandler(BaseHandler):
res = results.values()
for event in res:
- event.signatures.update(
- compute_event_signature(
- event,
- self.hs.hostname,
- self.hs.config.signing_key[0]
+ # We sign these again because there was a bug where we
+ # incorrectly signed things the first time round
+ if self.hs.is_mine_id(event.event_id):
+ event.signatures.update(
+ compute_event_signature(
+ event,
+ self.hs.hostname,
+ self.hs.config.signing_key[0]
+ )
)
- )
defer.returnValue(res)
else:
diff --git a/synapse/push/mailer.py b/synapse/push/mailer.py
index e5c3929cd7..1028731bc9 100644
--- a/synapse/push/mailer.py
+++ b/synapse/push/mailer.py
@@ -273,16 +273,16 @@ class Mailer(object):
sender_state_event = room_state[("m.room.member", event.sender)]
sender_name = name_from_member_event(sender_state_event)
- sender_avatar_url = None
- if "avatar_url" in sender_state_event.content:
- sender_avatar_url = sender_state_event.content["avatar_url"]
+ sender_avatar_url = sender_state_event.content.get("avatar_url")
# 'hash' for deterministically picking default images: use
# sender_hash % the number of default images to choose from
sender_hash = string_ordinal_total(event.sender)
+ msgtype = event.content.get("msgtype")
+
ret = {
- "msgtype": event.content["msgtype"],
+ "msgtype": msgtype,
"is_historical": event.event_id != notif['event_id'],
"id": event.event_id,
"ts": event.origin_server_ts,
@@ -291,9 +291,9 @@ class Mailer(object):
"sender_hash": sender_hash,
}
- if event.content["msgtype"] == "m.text":
+ if msgtype == "m.text":
self.add_text_message_vars(ret, event)
- elif event.content["msgtype"] == "m.image":
+ elif msgtype == "m.image":
self.add_image_message_vars(ret, event)
if "body" in event.content:
@@ -302,16 +302,17 @@ class Mailer(object):
return ret
def add_text_message_vars(self, messagevars, event):
- if "format" in event.content:
- msgformat = event.content["format"]
- else:
- msgformat = None
+ msgformat = event.content.get("format")
+
messagevars["format"] = msgformat
- if msgformat == "org.matrix.custom.html":
- messagevars["body_text_html"] = safe_markup(event.content["formatted_body"])
- else:
- messagevars["body_text_html"] = safe_text(event.content["body"])
+ formatted_body = event.content.get("formatted_body")
+ body = event.content.get("body")
+
+ if msgformat == "org.matrix.custom.html" and formatted_body:
+ messagevars["body_text_html"] = safe_markup(formatted_body)
+ elif body:
+ messagevars["body_text_html"] = safe_text(body)
return messagevars
|