diff options
author | Paul "LeoNerd" Evans <paul@matrix.org> | 2016-08-18 14:56:02 +0100 |
---|---|---|
committer | Paul "LeoNerd" Evans <paul@matrix.org> | 2016-08-18 14:56:02 +0100 |
commit | 434bbf2cb5b31f5a8430a06f53549248f7306cfd (patch) | |
tree | 7ef3c6156c6867f85e42de458ff94407911ddad5 /synapse/appservice/__init__.py | |
parent | Merge remote-tracking branch 'origin/develop' into paul/thirdpartylookup (diff) | |
download | synapse-434bbf2cb5b31f5a8430a06f53549248f7306cfd.tar.xz |
Filter 3PU lookups by only ASes that declare knowledge of that protocol
Diffstat (limited to 'synapse/appservice/__init__.py')
-rw-r--r-- | synapse/appservice/__init__.py | 9 |
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) |