diff options
author | Calum Lind <calumlind+deluge@gmail.com> | 2018-06-29 10:22:30 +0100 |
---|---|---|
committer | Calum Lind <calumlind+deluge@gmail.com> | 2018-06-29 10:29:30 +0100 |
commit | e626f9fecee3e5a03048e2ba3b192c3a7b21a04c (patch) | |
tree | 834b4db9fac24d375f349e9a0bc91c9493c7a1cf /deluge/core/core.py | |
parent | 3fab799dbf6ae60dd73eaf03f7d6c5584315ef52 (diff) | |
download | deluge-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.py | 14 |
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 |