Update federation routing logic to check .well-known before SRV

This commit is contained in:
Richard van der Hoff 2019-01-31 23:13:44 +00:00
parent 85129d7068
commit d428b46346
3 changed files with 27 additions and 35 deletions

View file

@ -210,11 +210,7 @@ class MatrixFederationAgent(object):
target_port=parsed_uri.port,
))
# try a SRV lookup
service_name = b"_matrix._tcp.%s" % (parsed_uri.host,)
server_list = yield self._srv_resolver.resolve_service(service_name)
if not server_list and lookup_well_known:
if lookup_well_known:
# try a .well-known lookup
well_known_server = yield self._get_well_known(parsed_uri.host)
@ -250,6 +246,10 @@ class MatrixFederationAgent(object):
res = yield self._route_matrix_uri(new_uri, lookup_well_known=False)
defer.returnValue(res)
# try a SRV lookup
service_name = b"_matrix._tcp.%s" % (parsed_uri.host,)
server_list = yield self._srv_resolver.resolve_service(service_name)
if not server_list:
target_host = parsed_uri.host
port = 8448