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
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)
|