logo

searx

Unnamed repository; edit this file 'description' to name the repository.
commit: 18e7d6070275fbc48aef3d84a7f69811541e1fe5
parent: ff68546c69b68c4f83eb843f3ecb5789358d2f32
Author: Adam Tauber <asciimoo@gmail.com>
Date:   Sun, 26 Apr 2015 13:12:04 -0400

Merge pull request #298 from dalf/ssl

[fix] SSL : SNI support

Diffstat:

requirements.txt | 5+++++
searx/engines/btdigg.py | 4----
searx/engines/kickass.py | 4----
searx/engines/photon.py | 3---
searx/tests/engines/test_kickass.py | 1-
searx/webapp.py | 10++++++++++
setup.py | 5+++++
versions.cfg | 5+++++
8 files changed, 25 insertions(+), 12 deletions(-)

diff --git a/requirements.txt b/requirements.txt @@ -5,3 +5,8 @@ lxml pyyaml pygments python-dateutil +ndg-httpsclient +pyopenssl +pyasn1 +pyasn1-modules +certifi diff --git a/searx/engines/btdigg.py b/searx/engines/btdigg.py @@ -29,10 +29,6 @@ def request(query, params): params['url'] = search_url.format(search_term=quote(query), pageno=params['pageno']-1) - # FIX: SSLError: hostname 'btdigg.org' - # doesn't match either of 'ssl2000.cloudflare.com', 'cloudflare.com', '*.cloudflare.com' - params['verify'] = False - return params diff --git a/searx/engines/kickass.py b/searx/engines/kickass.py @@ -34,10 +34,6 @@ def request(query, params): params['url'] = search_url.format(search_term=quote(query), pageno=params['pageno']) - # FIX: SSLError: hostname 'kickass.so' - # doesn't match either of '*.kickass.to', 'kickass.to' - params['verify'] = False - return params diff --git a/searx/engines/photon.py b/searx/engines/photon.py @@ -41,9 +41,6 @@ def request(query, params): # using searx User-Agent params['headers']['User-Agent'] = searx_useragent() - # FIX: SSLError: SSL3_GET_SERVER_CERTIFICATE:certificate verify failed - params['verify'] = False - return params diff --git a/searx/tests/engines/test_kickass.py b/searx/tests/engines/test_kickass.py @@ -15,7 +15,6 @@ class TestKickassEngine(SearxTestCase): self.assertIn('url', params) self.assertIn(query, params['url']) self.assertIn('kickass.to', params['url']) - self.assertIn('verify', params) self.assertFalse(params['verify']) def test_response(self): diff --git a/searx/webapp.py b/searx/webapp.py @@ -65,6 +65,16 @@ from searx.query import Query from searx.autocomplete import searx_bang, backends as autocomplete_backends from searx.plugins import plugins +# check if the pyopenssl, ndg-httpsclient, pyasn1 packages are installed. +# They are needed for SSL connection without trouble, see #298 +try: + import OpenSSL.SSL # NOQA + import ndg.httpsclient # NOQA + import pyasn1 # NOQA +except ImportError: + logger.critical("The pyopenssl, ndg-httpsclient, pyasn1 packages have to be installed.\n" + "Some HTTPS connections will failed") + static_path, templates_path, themes =\ get_themes(settings['themes_path'] diff --git a/setup.py b/setup.py @@ -47,6 +47,11 @@ setup( 'pygments', 'setuptools', 'python-dateutil', + 'pyopenssl', + 'ndg-httpsclient', + 'pyasn1', + 'pyasn1-modules', + 'certifi' ], extras_require={ 'test': [ diff --git a/versions.cfg b/versions.cfg @@ -32,6 +32,11 @@ speaklater = 1.3 unittest2 = 0.5.1 waitress = 0.8.8 zc.recipe.testrunner = 2.0.0 +pyopenssl = 0.15.1 +ndg-httpsclient = 0.3.3 +pyasn1 = 0.1.7 +pyasn1-modules = 0.0.5 +certifi = 14.05.14 # Required by: # WebTest==2.0.11