|
@@ -25,7 +25,7 @@ from synapse.http.endpoint import SpiderEndpoint
|
|
|
from canonicaljson import encode_canonical_json
|
|
|
|
|
|
from twisted.internet import defer, reactor, ssl, protocol, task
|
|
|
-from twisted.internet.endpoints import SSL4ClientEndpoint, TCP4ClientEndpoint
|
|
|
+from twisted.internet.endpoints import HostnameEndpoint, wrapClientTLS
|
|
|
from twisted.web.client import (
|
|
|
BrowserLikeRedirectAgent, ContentDecoderAgent, GzipDecoder, Agent,
|
|
|
readBody, PartialDownloadError,
|
|
@@ -386,13 +386,16 @@ class SpiderEndpointFactory(object):
|
|
|
|
|
|
def endpointForURI(self, uri):
|
|
|
logger.info("Getting endpoint for %s", uri.toBytes())
|
|
|
-
|
|
|
+
|
|
|
if uri.scheme == "http":
|
|
|
endpoint_factory = HostnameEndpoint
|
|
|
elif uri.scheme == "https":
|
|
|
tlsCreator = self.policyForHTTPS.creatorForNetloc(uri.host, uri.port)
|
|
|
+
|
|
|
def endpoint_factory(reactor, host, port, **kw):
|
|
|
- return wrapClientTLS(tlsCreator, HostnameEndpoint(reactor, host, port, **kw)
|
|
|
+ return wrapClientTLS(
|
|
|
+ tlsCreator,
|
|
|
+ HostnameEndpoint(reactor, host, port, **kw))
|
|
|
else:
|
|
|
logger.warn("Can't get endpoint for unrecognised scheme %s", uri.scheme)
|
|
|
return None
|
|
@@ -400,7 +403,7 @@ class SpiderEndpointFactory(object):
|
|
|
reactor, uri.host, uri.port, self.blacklist, self.whitelist,
|
|
|
endpoint=endpoint_factory, endpoint_kw_args=dict(timeout=15),
|
|
|
)
|
|
|
-
|
|
|
+
|
|
|
|
|
|
|
|
|
class SpiderHttpClient(SimpleHttpClient):
|