summary refs log tree commit diff
diff options
context:
space:
mode:
authorErik Johnston <erikj@element.io>2024-04-11 16:03:45 +0100
committerGitHub <noreply@github.com>2024-04-11 16:03:45 +0100
commit3a30846bd088bbfecd9ddfa1ee82a6951670ade7 (patch)
tree0bb7c79bf45eb6c5f6bd8063cc0230e5eb661a1d
parent1.105.0rc1 (diff)
downloadsynapse-3a30846bd088bbfecd9ddfa1ee82a6951670ade7.tar.xz
Fix mypy on latest Twisted release (#17036)
`ITransport.abortConnection` isn't a thing, but
`HTTPChannel.forceAbortClient` calls it, so lets just use that

Fixes https://github.com/element-hq/synapse/issues/16728
-rw-r--r--changelog.d/17036.misc1
-rw-r--r--synapse/http/proxy.py3
-rw-r--r--synapse/http/server.py4
-rw-r--r--synapse/http/site.py3
4 files changed, 7 insertions, 4 deletions
diff --git a/changelog.d/17036.misc b/changelog.d/17036.misc
new file mode 100644
index 0000000000..3296668059
--- /dev/null
+++ b/changelog.d/17036.misc
@@ -0,0 +1 @@
+Fix mypy with latest Twisted release.
diff --git a/synapse/http/proxy.py b/synapse/http/proxy.py
index 6cbbd5741b..5b5ded757b 100644
--- a/synapse/http/proxy.py
+++ b/synapse/http/proxy.py
@@ -262,7 +262,8 @@ class _ProxyResponseBody(protocol.Protocol):
             self._request.finish()
         else:
             # Abort the underlying request since our remote request also failed.
-            self._request.transport.abortConnection()
+            if self._request.channel:
+                self._request.channel.forceAbortClient()
 
 
 class ProxySite(Site):
diff --git a/synapse/http/server.py b/synapse/http/server.py
index 632284712c..c76500e14f 100644
--- a/synapse/http/server.py
+++ b/synapse/http/server.py
@@ -153,9 +153,9 @@ def return_json_error(
     # Only respond with an error response if we haven't already started writing,
     # otherwise lets just kill the connection
     if request.startedWriting:
-        if request.transport:
+        if request.channel:
             try:
-                request.transport.abortConnection()
+                request.channel.forceAbortClient()
             except Exception:
                 # abortConnection throws if the connection is already closed
                 pass
diff --git a/synapse/http/site.py b/synapse/http/site.py
index 682b28e4c6..a5b5780679 100644
--- a/synapse/http/site.py
+++ b/synapse/http/site.py
@@ -150,7 +150,8 @@ class SynapseRequest(Request):
                 self.get_method(),
                 self.get_redacted_uri(),
             )
-            self.transport.abortConnection()
+            if self.channel:
+                self.channel.forceAbortClient()
             return
         super().handleContentChunk(data)