summary refs log tree commit diff
path: root/synapse/appservice
diff options
context:
space:
mode:
authorPaul "LeoNerd" Evans <paul@matrix.org>2016-08-18 14:56:02 +0100
committerPaul "LeoNerd" Evans <paul@matrix.org>2016-08-18 14:56:02 +0100
commit434bbf2cb5b31f5a8430a06f53549248f7306cfd (patch)
tree7ef3c6156c6867f85e42de458ff94407911ddad5 /synapse/appservice
parentMerge remote-tracking branch 'origin/develop' into paul/thirdpartylookup (diff)
downloadsynapse-434bbf2cb5b31f5a8430a06f53549248f7306cfd.tar.xz
Filter 3PU lookups by only ASes that declare knowledge of that protocol
Diffstat (limited to 'synapse/appservice')
-rw-r--r--synapse/appservice/__init__.py9
1 files changed, 8 insertions, 1 deletions
diff --git a/synapse/appservice/__init__.py b/synapse/appservice/__init__.py
index b1b91d0a55..bde9b51b2e 100644
--- a/synapse/appservice/__init__.py
+++ b/synapse/appservice/__init__.py
@@ -81,13 +81,17 @@ class ApplicationService(object):
     NS_LIST = [NS_USERS, NS_ALIASES, NS_ROOMS]
 
     def __init__(self, token, url=None, namespaces=None, hs_token=None,
-                 sender=None, id=None):
+                 sender=None, id=None, protocols=None):
         self.token = token
         self.url = url
         self.hs_token = hs_token
         self.sender = sender
         self.namespaces = self._check_namespaces(namespaces)
         self.id = id
+        if protocols:
+            self.protocols = set(protocols)
+        else:
+            self.protocols = set()
 
     def _check_namespaces(self, namespaces):
         # Sanity check that it is of the form:
@@ -219,6 +223,9 @@ class ApplicationService(object):
             or user_id == self.sender
         )
 
+    def is_interested_in_protocol(self, protocol):
+        return protocol in self.protocols
+
     def is_exclusive_alias(self, alias):
         return self._is_exclusive(ApplicationService.NS_ALIASES, alias)