| 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)
|
|
|