Cache manager for proxy connection.
authorms4py <marc.schlaich@googlemail.com>
Mon, 4 Mar 2013 08:39:16 +0000 (09:39 +0100)
committerschlamar <marc.schlaich@gmail.com>
Sat, 3 Aug 2013 11:59:28 +0000 (13:59 +0200)
requests/adapters.py

index 01cbaf4..5dd00d4 100644 (file)
@@ -71,6 +71,7 @@ class HTTPAdapter(BaseAdapter):
                  pool_block=DEFAULT_POOLBLOCK):
         self.max_retries = max_retries
         self.config = {}
+        self.proxy_manager = {}
 
         super(HTTPAdapter, self).__init__()
 
@@ -194,7 +195,10 @@ class HTTPAdapter(BaseAdapter):
 
         if proxy:
             except_on_missing_scheme(proxy)
-            conn = proxy_from_url(proxy).connection_from_url(url)
+            if not proxy in self.proxy_manager:
+                self.proxy_manager[proxy] = proxy_from_url(proxy)
+
+            conn = self.proxy_manager[proxy].connection_from_url(url)
         else:
             conn = self.poolmanager.connection_from_url(url.lower())