From e02d0d772184e490aa0eee66fee23f1b866e69de Mon Sep 17 00:00:00 2001 From: Zdzichu Date: Tue, 2 May 2023 22:00:32 +0000 Subject: [PATCH 1/3] Handle `DNSNotImplementedError` in SRV resolver Signed-off-by: Zdzichu --- synapse/http/federation/srv_resolver.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/synapse/http/federation/srv_resolver.py b/synapse/http/federation/srv_resolver.py index de0e882b3312..6bd70dfff57a 100644 --- a/synapse/http/federation/srv_resolver.py +++ b/synapse/http/federation/srv_resolver.py @@ -22,7 +22,7 @@ from twisted.internet.error import ConnectError from twisted.names import client, dns -from twisted.names.error import DNSNameError, DomainError +from twisted.names.error import DNSNameError, DomainError, DNSNotImplementedError from synapse.logging.context import make_deferred_yieldable @@ -145,6 +145,9 @@ async def resolve_service(self, service_name: bytes) -> List[Server]: # TODO: cache this. We can get the SOA out of the exception, and use # the negative-TTL value. return [] + except DNSNotImplementedError: + # For .onion homeservers this is unavailable, just fallback to host:8448 + return [] except DomainError as e: # We failed to resolve the name (other than a NameError) # Try something in the cache, else rereaise From 756b18960413b3afdd4b88921383d2ece6b8c4b3 Mon Sep 17 00:00:00 2001 From: Zdzichu Date: Tue, 2 May 2023 22:24:56 +0000 Subject: [PATCH 2/3] changelog Signed-off-by: Zdzichu --- changelog.d/15523.bugfix | 1 + 1 file changed, 1 insertion(+) create mode 100644 changelog.d/15523.bugfix diff --git a/changelog.d/15523.bugfix b/changelog.d/15523.bugfix new file mode 100644 index 000000000000..c00754019f3c --- /dev/null +++ b/changelog.d/15523.bugfix @@ -0,0 +1 @@ +Don't fail on federation over TOR where SRV queries are not supported. Contributed by Zdzichu. From da38e3ec0388246280ba8ab8815034c9a6c824c2 Mon Sep 17 00:00:00 2001 From: Zdzichu Date: Wed, 3 May 2023 11:14:36 +0000 Subject: [PATCH 3/3] Sorting imports Signed-off-by: Zdzichu --- synapse/http/federation/srv_resolver.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/synapse/http/federation/srv_resolver.py b/synapse/http/federation/srv_resolver.py index 6bd70dfff57a..285baddeb7ab 100644 --- a/synapse/http/federation/srv_resolver.py +++ b/synapse/http/federation/srv_resolver.py @@ -22,7 +22,7 @@ from twisted.internet.error import ConnectError from twisted.names import client, dns -from twisted.names.error import DNSNameError, DomainError, DNSNotImplementedError +from twisted.names.error import DNSNameError, DNSNotImplementedError, DomainError from synapse.logging.context import make_deferred_yieldable