Index: third_party/httplib2/__init__.py |
diff --git a/third_party/httplib2/__init__.py b/third_party/httplib2/__init__.py |
index 8825e5dc86d815b3c88f1f8f164190288511245e..6fa3cc60e5e7ac1389ba1d3dca84f8fd3fd57f0e 100644 |
--- a/third_party/httplib2/__init__.py |
+++ b/third_party/httplib2/__init__.py |
@@ -22,7 +22,7 @@ __contributors__ = ["Thomas Broyer (t.broyer@ltgt.net)", |
"Sam Ruby", |
"Louis Nyffenegger"] |
__license__ = "MIT" |
-__version__ = "0.8" |
+__version__ = "0.9.2" |
import re |
import sys |
@@ -749,12 +749,27 @@ class ProxyInfo(object): |
bypass_hosts = () |
def __init__(self, proxy_type, proxy_host, proxy_port, |
- proxy_rdns=None, proxy_user=None, proxy_pass=None): |
- """The parameter proxy_type must be set to one of socks.PROXY_TYPE_XXX |
- constants. For example: |
+ proxy_rdns=True, proxy_user=None, proxy_pass=None): |
+ """ |
+ Args: |
+ proxy_type: The type of proxy server. This must be set to one of |
+ socks.PROXY_TYPE_XXX constants. For example: |
+ |
+ p = ProxyInfo(proxy_type=socks.PROXY_TYPE_HTTP, |
+ proxy_host='localhost', proxy_port=8000) |
+ |
+ proxy_host: The hostname or IP address of the proxy server. |
+ |
+ proxy_port: The port that the proxy server is running on. |
- p = ProxyInfo(proxy_type=socks.PROXY_TYPE_HTTP, |
- proxy_host='localhost', proxy_port=8000) |
+ proxy_rdns: If True (default), DNS queries will not be performed |
+ locally, and instead, handed to the proxy to resolve. This is useful |
+ if the network does not allow resolution of non-local names. In |
+ httplib2 0.9 and earlier, this defaulted to False. |
+ |
+ proxy_user: The username used to authenticate with the proxy server. |
+ |
+ proxy_pass: The password used to authenticate with the proxy server. |
""" |
self.proxy_type = proxy_type |
self.proxy_host = proxy_host |
@@ -871,12 +886,12 @@ class HTTPConnectionWithTimeout(httplib.HTTPConnection): |
if self.proxy_info and self.proxy_info.isgood(): |
use_proxy = True |
proxy_type, proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass = self.proxy_info.astuple() |
- else: |
- use_proxy = False |
- if use_proxy and proxy_rdns: |
+ |
host = proxy_host |
port = proxy_port |
else: |
+ use_proxy = False |
+ |
host = self.host |
port = self.port |
@@ -993,12 +1008,12 @@ class HTTPSConnectionWithTimeout(httplib.HTTPSConnection): |
if self.proxy_info and self.proxy_info.isgood(): |
use_proxy = True |
proxy_type, proxy_host, proxy_port, proxy_rdns, proxy_user, proxy_pass = self.proxy_info.astuple() |
- else: |
- use_proxy = False |
- if use_proxy and proxy_rdns: |
+ |
host = proxy_host |
port = proxy_port |
else: |
+ use_proxy = False |
+ |
host = self.host |
port = self.port |
@@ -1270,8 +1285,9 @@ class Http(object): |
err = getattr(e, 'args')[0] |
else: |
err = e.errno |
- if err == errno.ECONNREFUSED: # Connection refused |
- raise |
+ if err in (errno.ENETUNREACH, errno.EADDRNOTAVAIL) and i < RETRIES: |
+ continue # retry on potentially transient socket errors |
+ raise |
except httplib.HTTPException: |
# Just because the server closed the connection doesn't apparently mean |
# that the server didn't send a response. |
@@ -1481,7 +1497,7 @@ class Http(object): |
info = email.Message.Message() |
cached_value = None |
if self.cache: |
- cachekey = defrag_uri |
+ cachekey = defrag_uri.encode('utf-8') |
cached_value = self.cache.get(cachekey) |
if cached_value: |
# info = email.message_from_string(cached_value) |