summary refs log tree commit diff
path: root/synapse
diff options
context:
space:
mode:
Diffstat (limited to 'synapse')
-rw-r--r--synapse/config/room_directory.py32
1 files changed, 15 insertions, 17 deletions
diff --git a/synapse/config/room_directory.py b/synapse/config/room_directory.py
index 6815d6e9b7..aa113f0edf 100644
--- a/synapse/config/room_directory.py
+++ b/synapse/config/room_directory.py
@@ -177,24 +177,22 @@ class _RoomDirectoryRule(object):
         if not self._user_id_regex.match(user_id):
             return False
 
-        # If we are not given any aliases then this rule only matches if the
-        # alias glob matches all aliases
-        matched = False
-        if not aliases:
-            if not self._alias_matches_all:
-                return False
-        else:
-            # Otherwise, we just need one alias to match
-            matched = False
-            for alias in aliases:
-                if self._alias_regex.match(alias):
-                    matched = True
-                    break
+        if not self._room_id_regex.match(room_id):
+            return False
 
-            if not matched:
-                return False
+        # We only have alias checks left, so we can short circuit if the alias
+        # rule matches everything.
+        if self._alias_matches_all:
+            return True
 
-        if not self._room_id_regex.match(room_id):
+        # If we are not given any aliases then this rule only matches if the
+        # alias glob matches all aliases, which we checked above.
+        if not aliases:
             return False
 
-        return True
+        # Otherwise, we just need one alias to match
+        for alias in aliases:
+            if self._alias_regex.match(alias):
+                return True
+
+        return False