diff options
author | Richard van der Hoff <1389908+richvdh@users.noreply.github.com> | 2019-12-18 14:26:58 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-18 14:26:58 +0000 |
commit | d6752ce5da38d35857fe324800d76a86ee1e64f1 (patch) | |
tree | 5f2d50603c03ffbac4952af89d2704452c16db3d /synapse/push/pusher.py | |
parent | Add delta file to fix missing default table data (#6555) (diff) | |
download | synapse-d6752ce5da38d35857fe324800d76a86ee1e64f1.tar.xz |
Clean up startup for the pusher (#6558)
* Remove redundant python2 support code `str.decode()` doesn't exist on python3, so presumably this code was doing nothing * Filter out pushers with corrupt data When we get a row with unparsable json, drop the row, rather than returning a row with null `data`, which will then cause an explosion later on. * Improve logging when we can't start a pusher Log the ID to help us understand the problem * Make email pusher setup more robust We know we'll have a `data` member, since that comes from the database. What we *don't* know is if that is a dict, and if that has a `brand` member, and if that member is a string.
Diffstat (limited to 'synapse/push/pusher.py')
-rw-r--r-- | synapse/push/pusher.py | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/synapse/push/pusher.py b/synapse/push/pusher.py index f277aeb131..8ad0bf5936 100644 --- a/synapse/push/pusher.py +++ b/synapse/push/pusher.py @@ -80,9 +80,11 @@ class PusherFactory(object): return EmailPusher(self.hs, pusherdict, mailer) def _app_name_from_pusherdict(self, pusherdict): - if "data" in pusherdict and "brand" in pusherdict["data"]: - app_name = pusherdict["data"]["brand"] - else: - app_name = self.config.email_app_name + data = pusherdict["data"] - return app_name + if isinstance(data, dict): + brand = data.get("brand") + if isinstance(brand, str): + return brand + + return self.config.email_app_name |