def endpointForURI(self, uri): destination = uri.netloc return matrix_federation_endpoint( reactor, destination, timeout=10, ssl_context_factory=self.tls_server_context_factory )
def fetch_server_key(server_name, ssl_context_factory, path=KEY_API_V1): """Fetch the keys for a remote server.""" factory = SynapseKeyClientFactory() factory.path = path endpoint = matrix_federation_endpoint( reactor, server_name, ssl_context_factory, timeout=30 ) for i in range(5): try: protocol = yield preserve_context_over_fn( endpoint.connect, factory ) server_response, server_certificate = yield preserve_context_over_deferred( protocol.remote_key ) defer.returnValue((server_response, server_certificate)) return except SynapseKeyClientError as e: logger.exception("Error getting key for %r" % (server_name,)) if e.status.startswith("4"): # Don't retry for 4xx responses. raise IOError("Cannot get key for %r" % server_name) except Exception as e: logger.exception(e) raise IOError("Cannot get key for %r" % server_name)
def fetch_server_key(server_name, tls_client_options_factory, key_id): """Fetch the keys for a remote server.""" factory = SynapseKeyClientFactory() factory.path = KEY_API_V2 % (urllib.parse.quote(key_id), ) factory.host = server_name endpoint = matrix_federation_endpoint(reactor, server_name, tls_client_options_factory, timeout=30) for i in range(5): try: with logcontext.PreserveLoggingContext(): protocol = yield endpoint.connect(factory) server_response, server_certificate = yield protocol.remote_key defer.returnValue((server_response, server_certificate)) except SynapseKeyClientError as e: logger.warn("Error getting key for %r: %s", server_name, e) if e.status.startswith(b"4"): # Don't retry for 4xx responses. raise IOError("Cannot get key for %r" % server_name) except (ConnectError, DomainError) as e: logger.warn("Error getting key for %r: %s", server_name, e) except Exception: logger.exception("Error getting key for %r", server_name) raise IOError("Cannot get key for %r" % server_name)
def fetch_server_key(server_name, ssl_context_factory, path=KEY_API_V1): """Fetch the keys for a remote server.""" factory = SynapseKeyClientFactory() factory.path = path factory.host = server_name endpoint = matrix_federation_endpoint(reactor, server_name, ssl_context_factory, timeout=30) for i in range(5): try: with logcontext.PreserveLoggingContext(): protocol = yield endpoint.connect(factory) server_response, server_certificate = yield protocol.remote_key defer.returnValue((server_response, server_certificate)) except SynapseKeyClientError as e: logger.exception("Error getting key for %r" % (server_name, )) if e.status.startswith("4"): # Don't retry for 4xx responses. raise IOError("Cannot get key for %r" % server_name) except Exception as e: logger.exception(e) raise IOError("Cannot get key for %r" % server_name)
def endpointForURI(self, uri): destination = uri.netloc.decode('ascii') return matrix_federation_endpoint( self.reactor, destination, timeout=10, tls_client_options_factory=self.tls_client_options_factory )
def endpointForURI(self, uri): destination = uri.netloc.decode('ascii') return matrix_federation_endpoint( self.reactor, destination, timeout=10, tls_client_options_factory=self.tls_client_options_factory )
def endpointForURI(self, uri): destination = uri.netloc return matrix_federation_endpoint( reactor, destination, timeout=10, ssl_context_factory=self.tls_server_context_factory )
def fetch_server_key(server_name, tls_client_options_factory, key_id): """Fetch the keys for a remote server.""" factory = SynapseKeyClientFactory() factory.path = KEY_API_V2 % (urllib.parse.quote(key_id), ) factory.host = server_name endpoint = matrix_federation_endpoint( reactor, server_name, tls_client_options_factory, timeout=30 ) for i in range(5): try: with logcontext.PreserveLoggingContext(): protocol = yield endpoint.connect(factory) server_response, server_certificate = yield protocol.remote_key defer.returnValue((server_response, server_certificate)) except SynapseKeyClientError as e: logger.warn("Error getting key for %r: %s", server_name, e) if e.status.startswith(b"4"): # Don't retry for 4xx responses. raise IOError("Cannot get key for %r" % server_name) except (ConnectError, DomainError) as e: logger.warn("Error getting key for %r: %s", server_name, e) except Exception: logger.exception("Error getting key for %r", server_name) raise IOError("Cannot get key for %r" % server_name)
def fetch_server_key(server_name, ssl_context_factory): """Fetch the keys for a remote server.""" factory = SynapseKeyClientFactory() endpoint = matrix_federation_endpoint( reactor, server_name, ssl_context_factory, timeout=30 ) for i in range(5): try: with PreserveLoggingContext(): protocol = yield endpoint.connect(factory) server_response, server_certificate = yield protocol.remote_key defer.returnValue((server_response, server_certificate)) return except Exception as e: logger.exception(e) raise IOError("Cannot get key for %s" % server_name)
def fetch_server_key(server_name, ssl_context_factory): """Fetch the keys for a remote server.""" factory = SynapseKeyClientFactory() endpoint = matrix_federation_endpoint( reactor, server_name, ssl_context_factory, timeout=30 ) for i in range(5): try: with PreserveLoggingContext(): protocol = yield endpoint.connect(factory) server_response, server_certificate = yield protocol.remote_key defer.returnValue((server_response, server_certificate)) return except Exception as e: logger.exception(e) raise IOError("Cannot get key for %s" % server_name)
def _getEndpoint(self, reactor, destination): return matrix_federation_endpoint( reactor, destination, timeout=10, ssl_context_factory=self.hs.tls_context_factory )