From 99a5695fb7c06e7930a9e3b0104d170831001ae4 Mon Sep 17 00:00:00 2001 From: BTDigg research team Date: Sun, 19 Jan 2014 21:03:53 +0100 Subject: [PATCH] Fix issue with SSL under Win32 --- src/searchengine/nova/engines/btdigg.py | 32 ++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/src/searchengine/nova/engines/btdigg.py b/src/searchengine/nova/engines/btdigg.py index 6f3606f40..fea303676 100644 --- a/src/searchengine/nova/engines/btdigg.py +++ b/src/searchengine/nova/engines/btdigg.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # -#VERSION: 1.21 +#VERSION: 1.22 #AUTHORS: BTDigg team (research@btdigg.org) # # GNU GENERAL PUBLIC LICENSE @@ -24,6 +24,36 @@ import urllib import urllib2 import sys +if sys.platform == 'win32': + import httplib + import socket + import ssl + + class HTTPSConnection(httplib.HTTPConnection): + "This class allows communication via SSL." + + default_port = httplib.HTTPS_PORT + + def __init__(self, host, port=None, key_file=None, cert_file=None, + strict=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, + source_address=None): + httplib.HTTPConnection.__init__(self, host, port, strict, timeout, + source_address) + self.key_file = key_file + self.cert_file = cert_file + + def connect(self): + "Connect to a host on a given (SSL) port." + + sock = socket.create_connection((self.host, self.port), + self.timeout, self.source_address) + if self._tunnel_host: + self.sock = sock + self._tunnel() + self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, ssl_version=ssl.PROTOCOL_TLSv1) + + httplib.HTTPSConnection = HTTPSConnection + from novaprinter import prettyPrinter class btdigg(object):