From b058ef785e1fd59456790b5f71337a112837ea08 Mon Sep 17 00:00:00 2001 From: Florent Date: Wed, 31 Jul 2013 18:21:03 +0200 Subject: [PATCH] Add a local DNS cache in browser Should solve BNP DNS errors --- weboob/tools/browser/browser.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/weboob/tools/browser/browser.py b/weboob/tools/browser/browser.py index 06a70451..7d93ae97 100644 --- a/weboob/tools/browser/browser.py +++ b/weboob/tools/browser/browser.py @@ -738,6 +738,20 @@ ssl.wrap_socketold = ssl.wrap_socket ssl.wrap_socket = mywrap_socket +cacheDNS = {} + +def my_getaddrinfo(*args): + try: + return cacheDNS[args] + except KeyError: + res = socket.getaddrinfoold(*args) + cacheDNS[args] = res + return res + +socket.getaddrinfoold = socket.getaddrinfo +socket.getaddrinfo = my_getaddrinfo + + class HTTPSConnection2(httplib.HTTPSConnection): _HOSTS = {} _PROTOCOLS = [ssl.PROTOCOL_TLSv1, ssl.PROTOCOL_SSLv3]