summaryrefslogtreecommitdiffstats
path: root/deluge/core/core.py
diff options
context:
space:
mode:
authorCalum Lind <calumlind+deluge@gmail.com>2018-06-29 10:22:30 +0100
committerCalum Lind <calumlind+deluge@gmail.com>2018-06-29 10:29:30 +0100
commite626f9fecee3e5a03048e2ba3b192c3a7b21a04c (patch)
tree834b4db9fac24d375f349e9a0bc91c9493c7a1cf /deluge/core/core.py
parent3fab799dbf6ae60dd73eaf03f7d6c5584315ef52 (diff)
downloaddeluge-e626f9fecee3e5a03048e2ba3b192c3a7b21a04c.tar.gz
deluge-e626f9fecee3e5a03048e2ba3b192c3a7b21a04c.tar.bz2
deluge-e626f9fecee3e5a03048e2ba3b192c3a7b21a04c.zip
[Win32] Fix missing certs for HTTPS requests
The following error occured on Windows when switching to using HTTPS url with Twisted Agent: ``` <class 'twisted.web._newclient.ResponseNeverReceived'>: [<twisted.python.failure.Failure OpenSSL.SSL.Error: [('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')]> ``` The fix is to install certifi and provide the path to the trust store as env var for OpenSSL to pick up. Also includes a simplication of the core test_listen_port code.
Diffstat (limited to 'deluge/core/core.py')
-rw-r--r--deluge/core/core.py14
1 files changed, 3 insertions, 11 deletions
diff --git a/deluge/core/core.py b/deluge/core/core.py
index 76abfc8ac..691a7c0d2 100644
--- a/deluge/core/core.py
+++ b/deluge/core/core.py
@@ -1121,23 +1121,15 @@ class Core(component.Component):
port = self.get_listen_port()
url = 'https://deluge-torrent.org/test_port.php?port=%s' % port
agent = Agent(reactor, connectTimeout=30)
- d = agent.request(
- b'GET',
- url.encode('utf-8'),
- )
-
- def on_get_page(response):
- d = readBody(response)
- d.addCallback(on_read_body)
- return d
+ d = agent.request(b'GET', url.encode())
- def on_read_body(body):
+ def on_get_page(body):
return bool(int(body))
def on_error(failure):
log.warning('Error testing listen port: %s', failure)
- d.addCallback(on_get_page)
+ d.addCallback(readBody).addCallback(on_get_page)
d.addErrback(on_error)
return d