1 files changed, 11 insertions, 4 deletions
diff --git a/synapse/appservice/api.py b/synapse/appservice/api.py
index afc64ed267..b0eb0c6d9d 100644
--- a/synapse/appservice/api.py
+++ b/synapse/appservice/api.py
@@ -32,6 +32,14 @@ HOUR_IN_MS = 60 * 60 * 1000
APP_SERVICE_PREFIX = "/_matrix/app/unstable"
+def _is_valid_3pe_metadata(info):
+ if "instances" not in info:
+ return False
+ if not isinstance(info["instances"], list):
+ return False
+ return True
+
+
def _is_valid_3pe_result(r, field):
if not isinstance(r, dict):
return False
@@ -164,10 +172,9 @@ class ApplicationServiceApi(SimpleHttpClient):
try:
info = yield self.get_json(uri, {})
- # Ignore any result that doesn't contain an "instances" list
- if "instances" not in info:
- defer.returnValue(None)
- if not isinstance(info["instances"], list):
+ if not _is_valid_3pe_metadata(info):
+ logger.warning("query_3pe_protocol to %s did not return a"
+ " valid result", uri)
defer.returnValue(None)
defer.returnValue(info)
|