diff options
author | Patrick Cloke <clokep@users.noreply.github.com> | 2020-07-17 07:59:23 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-17 07:59:23 -0400 |
commit | 852930add765540c580378238ab03869a8c7530d (patch) | |
tree | 105fc715ef41f221871a12ba22704dc1dbddc4d7 /synapse | |
parent | Change "unknown room ver" logging to warning. (#7881) (diff) | |
download | synapse-852930add765540c580378238ab03869a8c7530d.tar.xz |
Add a default limit (of 100) to get/sync operations. (#7858)
Diffstat (limited to 'synapse')
-rw-r--r-- | synapse/config/server.py | 6 | ||||
-rw-r--r-- | synapse/rest/client/v2_alpha/_base.py | 11 |
2 files changed, 14 insertions, 3 deletions
diff --git a/synapse/config/server.py b/synapse/config/server.py index b6afa642ca..3586a7d491 100644 --- a/synapse/config/server.py +++ b/synapse/config/server.py @@ -207,7 +207,7 @@ class ServerConfig(Config): # errors when attempting to search for messages. self.enable_search = config.get("enable_search", True) - self.filter_timeline_limit = config.get("filter_timeline_limit", -1) + self.filter_timeline_limit = config.get("filter_timeline_limit", 100) # Whether we should block invites sent to users on this server # (other than those sent by local server admins) @@ -693,7 +693,9 @@ class ServerConfig(Config): #gc_thresholds: [700, 10, 10] # Set the limit on the returned events in the timeline in the get - # and sync operations. The default value is -1, means no upper limit. + # and sync operations. The default value is 100. -1 means no upper limit. + # + # Uncomment the following to increase the limit to 5000. # #filter_timeline_limit: 5000 diff --git a/synapse/rest/client/v2_alpha/_base.py b/synapse/rest/client/v2_alpha/_base.py index bc11b4dda4..b21538766d 100644 --- a/synapse/rest/client/v2_alpha/_base.py +++ b/synapse/rest/client/v2_alpha/_base.py @@ -22,6 +22,7 @@ from twisted.internet import defer from synapse.api.errors import InteractiveAuthIncompleteError from synapse.api.urls import CLIENT_API_PREFIX +from synapse.types import JsonDict logger = logging.getLogger(__name__) @@ -51,7 +52,15 @@ def client_patterns(path_regex, releases=(0,), unstable=True, v1=False): return patterns -def set_timeline_upper_limit(filter_json, filter_timeline_limit): +def set_timeline_upper_limit(filter_json: JsonDict, filter_timeline_limit: int) -> None: + """ + Enforces a maximum limit of a timeline query. + + Params: + filter_json: The timeline query to modify. + filter_timeline_limit: The maximum limit to allow, passing -1 will + disable enforcing a maximum limit. + """ if filter_timeline_limit < 0: return # no upper limits timeline = filter_json.get("room", {}).get("timeline", {}) |