No longer permit empty body when sending receipts (#12709)
1 files changed, 1 insertions, 12 deletions
diff --git a/synapse/rest/client/receipts.py b/synapse/rest/client/receipts.py
index f9caab6635..4b03eb876b 100644
--- a/synapse/rest/client/receipts.py
+++ b/synapse/rest/client/receipts.py
@@ -13,12 +13,10 @@
# limitations under the License.
import logging
-import re
from typing import TYPE_CHECKING, Tuple
from synapse.api.constants import ReceiptTypes
from synapse.api.errors import SynapseError
-from synapse.http import get_request_user_agent
from synapse.http.server import HttpServer
from synapse.http.servlet import RestServlet, parse_json_object_from_request
from synapse.http.site import SynapseRequest
@@ -26,8 +24,6 @@ from synapse.types import JsonDict
from ._base import client_patterns
-pattern = re.compile(r"(?:Element|SchildiChat)/1\.[012]\.")
-
if TYPE_CHECKING:
from synapse.server import HomeServer
@@ -69,14 +65,7 @@ class ReceiptRestServlet(RestServlet):
):
raise SynapseError(400, "Receipt type must be 'm.read'")
- # Do not allow older SchildiChat and Element Android clients (prior to Element/1.[012].x) to send an empty body.
- user_agent = get_request_user_agent(request)
- allow_empty_body = False
- if "Android" in user_agent:
- if pattern.match(user_agent) or "Riot" in user_agent:
- allow_empty_body = True
- # This call makes sure possible empty body is handled correctly
- parse_json_object_from_request(request, allow_empty_body)
+ parse_json_object_from_request(request, allow_empty_body=False)
await self.presence_handler.bump_presence_active_time(requester.user)
|